day07 多态

多态

即同一方法可以根据发送对象的不同而采用多种不同的行为方式。

一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)

多态存在的条件:

有继承关系

子类重写父类方法

父类引用指向子类对象

注意:多态是方法的多态,属性没有多态性

instanceof (类型转换) 引用类型

 

package com.oop.demo05;

public class Monkey {
    private String name;
    private boolean sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isSex() {
        return sex;
    }

    public void setSex(boolean sex) {
        this.sex = sex;
    }

    public Monkey() {
        super();
    }

    public Monkey(String name, boolean sex) {
        this.name = name;
        this.sex = sex;
    }
    public void speak(){
        System.out.println(name+"咿咿呀呀!");
package com.oop.demo05;

public class People extends Monkey{
    public void speak(){
        System.out.println(this.getName()+"说了一句话!");
    }
    public void play(){
        System.out.println(this.getName()+"正在打篮球!");
    }
}
package com.oop.demo05;

public class Test02 {
    public static void main(String[] args) {
        Monkey m1 = new Monkey();
        m1.setName("金丝猴");
        m1.speak();
        //People p2 = (People) m1;
        if (m1 instanceof People){
            People p2 = (People)m1;
            p2.play();
        }


        System.out.println("=====================");
        People p1 = new People();
        p1.setName("秦汉");
        p1.play();
        p1.speak();
    }
}

  

} }

  

上一篇:TypeScript学习笔记(五)


下一篇:Python中的类和JavaScript中的类(ES6)