继承
继承中成员变量的关系,依据就近原则,子类中有该成员变量时,使用子类的,没有则使用父类的;
继承中的成员方法:
a.不同名方法
b.同名方法:优先会使子类的方法(重写/覆盖)
关于方法的重写:
子父类出现了一模一样的方法
应用:当子类需要父类的功能,而功能主体子类有自己的特有内容,可以重写父类中的方法
注意:父类中的私有方法无法被重写
子类重写的父类方法,访问权限不能更低
多态 :事务存在的多种形态
多态的前提:a.需要有继承关系 b.要有方法重写 c. 有父类的引用指向子类对象
animal a = new cat();
1.多态的成员访问特点,成员变量 编译看左边(父类),运行看左边(父类)
2.多态的访问特点,成员方法 编译看左边,访问看右边(动态绑定)调用子类中的同名方法
但注意,如果将父类中的同名方法删除,会报错
3.静态成员方法
编译看左边,访问看左边
静态与类相关,不算重写
public class animal {
public static void eat(){
System.out.println("动物吃东西");
}
}
public class cat extends animal{
public static void eat(){
System.out.println("猫吃鱼");
}
}
public class test {
public static void main(String[] args) {
animal a =new cat();
a.eat();
}
}
输出:动物吃东西
关于多态中的向上与向下转型
animal a = new cat();
父类引用指向子类对象就是向上转型
cat c = (cat)a ; 向下转型