1.子类覆盖的方法不能抛出比父类方法更多的异常。
2.父类静态方法不能被子类非静态方法覆盖。
3.父类非静态方法不能被子类静态方法覆盖。
4.private方法不能被覆盖。
5.父类非抽象方法可以被覆写为抽象方法。
6.在静态方法或静态的代码块中不能使用super关键字。
7.成员变量属于静态绑定。
class A{
String str = "a";
}
class B extends A{
String str = "b";
}
public class Test{
public static void main(String args[]){
A a = new B();
System.out.println( a.str);//调用了A类的str属性,因为静态绑定
}
}
8.组合和继承
继承只能被迫继承父类方法,而组合可以取消一些被包装类方法。
组合能改变父类方法。
但是组合有一个缺点:整体类不能自动获取局部类的接口,只能自己定义接口。