Thinking In Java 学习笔记 8.多态

多态 (动态绑定/后期绑定/运行时绑定)通过分离做什么和怎么做,从另一角度将接口与实现分离。 默认前期绑定
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。
前期绑定:在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。
后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定。实现后期绑定,需要某种机制支持,以便在运行时能判断对象的类型,调用开销比前期绑定大。
Java中的static方法和final方法(private属于final方法)属于前期绑定,子类无法重写final方法,成员变量(包括静态及非静态)也属于前期绑定。除了static方法和final方法(private属于final方法)之外的其他方法属于后期绑定,运行时能判断对象的类型进行绑定。
封装 通过合并特征和行为来创建新的数据类型。
实现隐藏 则通过将细节私有化把接口与实现分离开来。
向上转型、忘记对象类型
缺陷:
子类不能覆盖父类private方法
静态方法的行为不具备多态性,静态方法是与类(而不是对象)相关联的

构造方法不同于其他方法,构造方法是static方法,static隐式声明

先调用基类构造器
然后按声明顺序调用成员的初始化方法
再调用子类的构造器主体

协变返回类型

运行时类型检查(RTTI)
向下转型 如果类型正确,转型成功;
类型错误,返回ClassCastException(类转型异常)

猜你喜欢

转载自blog.csdn.net/jjj1299894209/article/details/80894624