继承
继承的特点
- 子类,父类
- 单继承(一个子类只有一个父类)
- 父类中private 的属性不能被继承
继承的好处
继承的语法
- class 子类 extends 父类{}
- 关键字 extends
class Dog extends Animal{
//
}
继承的初始化顺序
- 初始化superclass 再 初始化subclass
- 先初始化对象中的属性,再执行构造方法中的初始化
- e.g. 当我们创建一个子类对象时,这其中的初始化顺序是:
父类对象初始化——> 父类属性初始化——> 父类构造方法执行——>子类对象初始化——>子类属性初始化——>子类构造方法执行
final 关键字
- final 关键字可以修饰 类、 方法、属性和变量
- final 修饰 class, 则该类不能被继承
- final 修饰 method, 则该方法不能被覆盖(重写)override
- final 修饰 parameters, 则该类的属性不会进行隐式的初始化(及该属性的初始化必须有值)或者在构造方法中赋值(两种只能选其一)
- final 修饰变量,则该变量只能被赋值一次,即成为一个常量
super 关键字
- super 关键字常用在对象内部,可以用来代表父类对象
- 访问父类的属性 e.g. super.age
- 访问父类的方法 e.g. super.eat()
- super 的应用
-- 子类的构造过程中必须调用父类的构造方法
-- 如果子类的constructor中没有显式的调用父类的构造方法,则系统默认调用父类的无参构造方法
-- 如果显示的调用构造方法,则调用语句必须放在子类构造方法的第一行
-- 如果子类的构造方法中既没有显示的调用父类构造方法,而父类中也没有无参构造方法,则会编译出错
Object 类
- Object 类是所有类的父类,如果一个类没有用extends明确标识继承于哪个类,则它默认继承Object类
- Object 类中的方法适用于所有子类
Object类中的几个重要方法
toString() 方法
- Object 类中的toString方法: 返回对象的哈希code码(对象的地址字符串)
- 可以重写toString() 方法表示出对象的属性
code->generate
equals() 方法
- 返回值是boolean型 true or false, 所以一般可以和if语句配合
- 比较的是对象的引用地址是否相同(是否指向同一块内存地址)
- 如果要比较两个对象的值是否相等,则可以重写
网友评论