封装:(类内部不被外部干涉,暴露的少,类似于C++的private和public)
private:类
default/置空:类、包
protected:类、包、子类
public:类、包、子类、所有类
要点:
用get/set(public)方法来 读取/设定(private)属性
*boolean变量的get方法用is开头
多态:(只针对方法,不针对属性)
引用时以模糊的类型(一般为父类),运行时传入的参数具体化(具体的子类)
必要条件:继承、方法的重写、父类引用指向子类对象(实现了【父 a = new 子()】)
强制转型问题:在父 a = new 子()后,不能a.子类中的方法(编译时未找到方法),只能强制转型;运行时依旧以真实子类判断,b子类被强转c子类时编译不报错,运行报错
* a instanceof b:a(变量)引用b类(类名)变量