天天看点

面向对象三大特性-继承

1、定义:

继承描述的是类与类之间的一种关系,即“is-a”关系;继承其他类的类被称为子类,被继承的类称为父类,java只支持单继承,即一个子类只能继承一个父类,但可以实现多个接口

2、作用:

子类可以使用父类中所有非private、default修饰的方法和属性,实现代码复用,减少代码编写

3、重写

如果子类对父类中的方法不满意,可以重写从父类继承的方法,调用时,优先调用子类重写的方法

重写规则:

方法的返回值不一定要相同!只要保持和父类的返回值兼容就行了!

比如,父类的某个方法返回值是 double,子类重写该方法时可以返回 int,因为 int 可以转为 double。

另外,子类重写方法时,访问修饰符要使得该方法的可见性不低于父类中的方法!如父类的方法是 public 的,

子类必须是public,父类是 private,子类可以是 private, package 和 public。

继承的初始化顺序:

父类对象->属性初始化->构造方法->子类对象->属性初始化->构造方法

4、final关键字

final可以修饰类、方法、属性、变量

修饰类时:表示该类不能被继承

修饰方法时:表示该方法不能被覆盖

修饰属性时:该属性不会被自动初始化,要么属性有值,要么通过构造方法初始化

修饰变量时:变量只能被赋值一次,即为常量

5、super关键字

子类通过super关键字访问父类中的属性及方法

6、Object类

如果没有继承别的类,隐含继承Object类,toString()返回的是对象Hashcode

equals()方法:比较的是对象引用的是否是同一块内存地址,引用是否指向一个对象