深入面向对象
面向对象的三大基本特征:继承、封装、多态。
类的访问控制符
默认:仅可被同包的其他的代码访问。
public:可以被任何代码访问。
类成员的访问控制符
public 同一个类 同一个包中 不同包中的子类 不同包中的非子类
default 同一个类中 同一个包中
protected 同一个类中 同一个包中 不同包中的子类
public 同一个类中 同一个包中 不同包中的子类 不同包中的非子类
继承是能自动传播代码和重用代码的有力工具,继承是单方向的。
java 是单继承的,所以在extends后面只能是一个名字。
对于构造方法来说,子类继承不了,只能调用。
通过super关键字可以在子类构造方法中显示调用父类的构造方法,该调用必须位于子类构造方法的第一行。
方法覆盖:两个方法的方法名、参数列表必须完全一致(子类重写父类的方法)。
子类方法的访问级别不能低于父类相应的方法级别。
如果没有无参的父类的构造方法,子类必须使用super显示的调用父类的构造方法。而且必须是在子类构造器的第一句。
this引用对象自身,调用自己的构造方法,而super调用父类定义的成员变量、方法或构造方法,super不能当做引用传递给其他的调用而this可以。
java中多态指不同类的对象对同一消息做出相应。
java中,除了final、static、private、构造方法是静态绑定,其他的方法全部为动态绑定。
运算符instanceof是用来判断是否属于某个类的实力
对象 instanceof 类
在多态的环境中,父类的引用可以指向子类的对象,子类的引用不能指向父类的对象。
java的抽象就是知识声明行为接口而不是完成具体的实现
抽象类不能直接实例化,只可以用来继承作为其他类的父类的存在。
构造方法和final、static不可以修饰为abstract。