多态(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();
}
}
知识兔