欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > java25.1.18-1.21

java25.1.18-1.21

2025/2/24 17:07:39 来源:https://blog.csdn.net/nwbfygsjdr/article/details/145226303  浏览:    关键词:java25.1.18-1.21
继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

//首先父类有的行为和属,子类也需要有。

//一般来说,子类是父类属性和行为的细化

class 父类 {
}class 子类 extends 父类 {
}
继承的特性
  • 子类拥有父类非 private 的属性、方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。

  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

继承关键字

extends和implements关键字

  • extends关键字可以继承一个父类
  • implements可以继承接口。变相实现多继承(不同:接口只有方法和常量的定义)
super关键字和this关键字
  • super 关键字:我们可以通过 super 关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this 关键字:指向自己的引用,引用当前对象,即它所在的方法或构造函数所属的对象实例。

       

上例中看Dog d new Dog(),创建了Dog的对象,后调用了eatTest方法。在这个方法中先调用了dog对象的eat方法,后super调用了animal的eat方法。故输出为:后两句

final 关键字

final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

final 含义为 "最终的"。

使用 final 关键字声明类(注意声明的是类而不是变量),就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写

最后构造方法:

子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

重写(Override)和重载(Overload)

重写:既对方法的重写书写。

对象:子类对父类方法重写

限制:子类和父类具有相同名称、参数列表和返回类型的方法

重载

重载(overloading) 是在一个类里面方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载。

多态

多态是同一个行为具有多个不同表现形式或形态的能力。

  • 1. 消除类型之间的耦合关系
  • 2. 可替换性
  • 3. 可扩充性
  • 4. 接口性
  • 5. 灵活性
  • 6. 简化性

多态存在的三个必要条件

  • 继承
  • 重写
  • 父类引用指向子类对象。Parent p = new Child();

Parent p = new Child();

p会继承Parent的属性。调用方法时使用的时child的方法。

抽象类
定义:

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。    //设计阶段设计可以减少后面的工作量

组成:
  • 成员变量
  • 成员方法
  • 构造方法
  • 抽象方法 //该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,
封装:

封装我们已经使用过了。就是我们设置属性为private,然后通过构造方法等进行调用

封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

封装的优点
  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

接口:

在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。

接口和类的相似之处
  • 一个接口可以有多个方法。
  • 接口文件保存在 .java 结尾的文件中,文件名使用接口名。
  • 接口的字节码文件保存在 .class 结尾的文件中。
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中。
接口与类的区别:
  • 接口不能用于实例化对象。
  • 接口没有构造方法。
  • 接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。
  • 接口不能包含成员变量,除了 static 和 final 变量。
  • 接口不是被类继承了,而是要被类实现。
  • 接口支持多继承。

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

枚举:

枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。

比如在一些游戏的玩家满意度反馈。你还玩过其他什么游戏。他会列出大部分游戏和其他。这就是一种枚举。

enum Color 

    RED, GREEN, BLUE; 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词