25. java面向对象 - 多态

一、定义

​ 多态性的使用前提:① 类的继承关系 ② 要有方法的重写

​ instanceof关键字使用:a instanceof A,判断对象a是否为类A的实例

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat() {
        System.out.println("父-吃饭");
    }

    public void sleep() {
        System.out.println("父-睡觉");
    }

}
public class Man extends Person {

    public Man(String name, int age) {
        super(name, age);
    }

    public void eat(){
        System.out.println("男人吃肉");
    }
}
public class Woman extends Person {
    public Woman(String name, int age) {
        super(name, age);
    }

    public void eat() {
        System.out.println("女人吃菜");
    }
}
    public class PersonTest {
    public static void main(String[] args) {
        // 对象的多态性:父类的引用指向子类的对象
        Person p1 = new Man("小明", 10);
        Person p2 = new Woman("小红", 11);
        //多态的使用,当调用子父类同名同参数方法时,实际执行的是子类重写父类的方法[虚拟方法调用]
        p2.eat();
        //判断对象p2是否为类Woman的实例
        if(p2 instanceof Woman){
            System.out.println("√");
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/hq82/p/12238380.html