多态

package com.aaa.day3333;

public class person {
    public void eat() {
    
    System.out.println("人类在吃饭");
}
}
------------------------------------------------------
package com.aaa.day3333;

public class Student extends person{
    public void eat(){
        System.out.println("学生吃饭");
    }
}
-------------------------------------------------------
package com.aaa.day3333;

public class Teacher extends person{
    public void eat(){
        System.out.println("老师在吃饭");
    }
}
----------------------------------------------------------
package com.aaa.day3333;

public class Test {
    //在多态中成员方法的特点,如果子类跟副类有同名的方法则调用子类重写的方法
    //如果副类中没有同名的方法那么该对象不能调用子类独有的方法
    //如果副类中有而子类中没有的方法,那么调用父类的方法
    //在多态中成员变量的特点:
    //1如果子类和副类有同名的成员变量则调用时访问的是副类的成员变量
    //2如果副类中没有同名的成员变量则该对象不能调用子类独有的成员变量
    //3如果副类中有,而子类中没有的成员变量那么调用父类的成员变量
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student s =new Student();
        //多态(有继承关系,把子类对象赋值给副类引用变量)
        //向上转型(子类》副类)
        person p=new Student();
        p.eat();
        //向下转型(父类》子类)
        Student pp=(Student)p;
        pp.eat();
    }

}
原文地址:https://www.cnblogs.com/a709898670/p/9354509.html