抽象类中可以有抽象方法 也可以有非抽象方法
接口中的方法必须全部都是abstract的,接口中的量都是常量,public static final int
而接口中方法public abstract void XX()
**! 子类重写父类的方法权限一定要高于父类的权限 !**
接口并没有构造方法,因为是干爹,不被继承,子类的super关键字访问的不是他
常量在构造方法初始化完成之前赋值是可以的
多态中引用数据类型转换:
与基本数据类型相反的是,引用数据类型在进行数据类型转换的时候范围是相反的
例如: Person p = new Son(); 隐式转换,小转大
假设子类中有一个独有的方法method(),但是由于Person p,栈内存中p的指针在堆内存中只能寻找到父类的方法
所以多态Person p = new Son();反而把权限限制了
强制类型转换(大-小)
Son s = (Son)p;
s.method(); //将p强制转换为son类型的引用(s)时,就可以访问子类的独有的方法method了