java - 基础 - 多态

多态(Polymorphism):

同一个对象体现出的不同形态,将一种行为体现出不同效果。

实现:父类引用指向子类

animal

public class Person extends Animal{

}

Animal a = new Person();

此时a只能调用person中的方法

如果父类和子类有相同的属性,调用父类的。

如果子类中重写了父类的方法,则调用的是子类中重写的方法。

如果父类想调用子类独有的方法,需要强制转化

Person  p = (Person)a;

package Polymorphism;

public class Animal {

    int age = 1;

    public void setAge(){
        age = 10;
        System.out.println("Animal类中的setAge方法");
    }

}
知识兔
package Polymorphism;

public class Person extends Animal {

    int age = 2;
    String name;

    public void setName(){
        String name = "aaa";
        System.out.println("Person类中的setName方法");
    }

    public void getName(){
        System.out.println("Person类中的getName方法:name = " + name);
    }

    public void setAge(){
        age = 20;
        System.out.println("Person类中的setAge方法");
    }

    public void getAge(){
        System.out.println("Person类中的getAge方法:age = " + age);
    }
}
知识兔
package Polymorphism;

public class Test {

    public static void main(String[] args){
        Animal a = new Person();//多态

        System.out.println(a.age);//如果父类和子类有相同的属性,调用父类的。

        a.setAge();//如果子类中重写了父类的方法,则调用的是子类中重写的方法。

        Person p = (Person) a;//如果父类想调用子类独有的方法,需要强制转化
        p.getAge();
    }
}
知识兔
计算机