1. 子类会继承父类所有public类型的实例变量和方法,但不会继承父类所有private类型的变量和方法;
2. 继承下来的方法可以被覆盖掉,但实例变量不能被覆盖掉;
3. 当某个方法在子类中被覆盖过,调用这个方法时会调用到覆盖过的版本;
4. 多态下,引用和对象可以是不同的类型,即任何extends过声明引用变量类型的对象都可以被赋值给这个引用变量;
5. 参数和返回类型可以多态;如:Animal myDog = new Dog();
6. 覆盖原则
- 参数必须一样,且返回类型必须兼容
返回类型兼容指不论父类声明的返回类型是什么,子类必须要声明返回一样的类型或该类型的子类;
- 不能降低方法的存取权限
即存取权限必须相同或更开放
7. 方法的重载
重载的意义两个方法的名称相同,但参数不同。
- 返回类型可以不同,只要所有的覆盖使用不同的参数即可;
- 不能只改变返回类型;
- 可以更改存取权限;
重载版的方法只是刚好有相同名字的不同方法,它与继承或多态无关。 重载的方法与覆盖方法不一样。