为什么使用继承:
- 可以将重复代码抽取到父类中
- 方便修改代码
- 减少代码量
特征:
- 继承是代码重用的一种方式
- 将子类共有的属性和行为放到父类中
- 符合is-a关系的设计使用继承
关键字、格式及规则:
关键字 : extends
规则:只能继承一个父类
格式:
class Dog extends Pet { Pet是父类,Dog是子类
//子类特有的属性和方法
}
子类访问父类成员
super关键字来访问父类的成员
- super只能出现在子类的方法和构造方法中
- super调用构造方法时,只能是第一句
- super不能访问父类的private成员
使用super关键字,super代表父类对象
访问父类构造方法
访问父类属性
访问父类方法
不能被继承的父类成员:
- private成员 属性
- 子类与父类不在同包,使用默认访问权限的成员
- 构造方法
访问修饰符protected
- 可以修饰属性和方法
- 本类、同包、子类可以访问
访问修饰符使用范围总结:
多重继承关系的初始化顺序:
方法重写的规则:
- 方法名相同
- 参数列表相同
- 返回值类型相同或者是其子类;
- 访问权限不能严于父类
方法重载与方法重写的区别:
抽象类
抽象类和抽象方法
- 抽象类不能被实例化
- 可以有0~多个抽象方法
- 非抽象类必须重写父类的所有抽象方法
Java中也使用抽象类,限制实例化
public abstract class Pet {
}
abstract也可用于方法——抽象方法
- 抽象方法没有方法体
- 抽象方法必须在抽象类里
- 抽象方法必须在子类中被实现,除非子类是抽象类
如:
final用法:
- 修饰的类,不能再被继承
- 修饰的方法,不能被子类重写
- 修饰的变量将变成常量,只能在初始化时进行赋值