继承是代码重用的一种形式
继承是父与子之间的关系(垂直)子类是一个父类is a
class Subclass
extends
Superclass
protected:
我的定义的方法是受保护的,只有继承我的子类才能使用
1.子类可以使用父类的非私有行为(方法),和非私有属性
2. 子类可以覆盖父类的方法
3.一个子类只能继承一个父类
3. 父类定义做什么,具体怎么做由子类实现
4.父类定义共性的行为,
5。子类构造方法做的
第一件事就是初始化父类 super()(java 编译器自动加上)确保父类属性的完整性checker 6
。
向上转型
,子类是一个父类圆形是一个形状
,专用类型转为公用类型
public static void play1(Instrument i1){
i1.play();
}
Dizi d1=new Dizi();
play1(di);
7。
向下转型, 公用类型转为专用类型
Person per=new Person();//父类
Student stu=new Student();//子类
Student stu=(Student)per;
多态
核心思想:父类定义做什么,怎么做下沉到子类 怎么做和作什么分离
三个前提:
1.存在继承关系
2.子类要重写父类的方法
3.父类数据类型的引用指向子类对象(
当变量指向一个对象时,这个变量就被称为
引用变量,简称引用 parent p =new son()此时的p就是父类的引用)
编译期是instrument父类(接口),运行期是子类
抽象类
抽象类用于继承,子类必须实现其父类的所有方法
可用于修饰 class , 方法,
1.被abstract 修饰的 方法不需要实现
,
没有方法体
用“;”结尾,
2.abstract 类不能用final修饰
3.abstract 不能与private ,static ,final或native 一起修饰同一个方法