程序里继承的是属性和行为
至上而下:从抽象到具体
最高类是最抽象的,是给了程序一种约定,具体的由下面的来做。
优势:1、继承体系为我们的程序结构创造了从抽象到具体的可能性
2、提高了代码的复用率。
eg:员工(父类)程序员(子类)、经理(子类)
继承结构的声明
public class 子类 extends 父类
特性:
1、单继承体系:一个类只能有一个直接父类,但可以有多个子类,
2、构造方法不可以被继承,但是可以调用:super();
3、除了可以定义子类中特有的方法外,父类中所有public和protected的程序成员也可以被此类继承
4、private程序成员是不可被继承的,private的方法原生final都不能被继承。
继承一般配着重写。
**protected:**是关注子类的一种访问修饰符,可以让子类访问到他所修饰的程序成员。
调用方法:
调用方法是最具体的那个层次的
如果子类中有方法的重写(覆盖了父类中的方法),
在调用他的程序中,实际上是在使用子类中的那个方法
如果子类中没有重写父类的方法,在调用此方法时,才会执行父类中的方法,
向上转型:
1、使用抽象的类型声明对象的引用了,而分配给他的对象是较具体类型的,即向上转型
2、向上转型是很自然的转型,老师安全的
3、这种声明方式呗称为面向抽象编程的声明方式,是一种良好的编程风格
4、其优点是减少对象之间的相互依赖。
实例变量的值是什么,由父类决定,
实例变量的值看左侧(声明类型);
实例方法的调用看右侧(new对象的类型)
使用抽象类声明,使用具体类型实例化的所谓的副作用
不能直接调用子类中的特有方法
报错:信息是在父类中不能找到 XX 方法。
目前的解决方式:强制转型。
继承原生伴随着抽象
程序本身就是一个抽象的体系结构