码迷,mamicode.com
首页 > 编程语言 > 详细

25. java面向对象 - 多态

时间:2020-01-28 17:38:44      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:out   面向对象   关键字   name   new   str   虚拟   类重写   int   

一、定义

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

? 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("√");
        }
    }
}

25. java面向对象 - 多态

标签:out   面向对象   关键字   name   new   str   虚拟   类重写   int   

原文地址:https://www.cnblogs.com/hq82/p/12238380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!