多态
同一批事物,它们都是由一个事物泛生得出的(也就是继承),这一批事物我们可以用一个分类去归纳。比如我们生存需要进食,牛肉、猪肉、鸡肉等,当我们处于一个饥饿的状态下,不管什么肉,都会食取充腹;又如,在建房子上,可以聘请不同的设计师来帮我们完成,不管是国外的还是国内的。
多态亦是如此,通过父类就能引用不同的子类,同一个行为具有多个不同表现形式或形态的能力,这可以使我们无需关注某个对象具体是什么类型,就可以去调用该对象的方法,提高了程序的灵活性
//假设Student继承至Person,并重写了todata()方法
public class TestDemo{
public static void main(String[] args){
Student p = new Student();
int a = 10;
getData(p,a)
}
public static String getData(Person person, int Data){
String str = person.todata(Data);
return str;
}
}
解析:
Student extends Person
:重写了todata()
方法
getData(Person person, int Data)
:Person
是一个引用类型,它指定了实际类型的范围,new Student()
是形式参数person的实际对象,后面的代码通过对象person调用其实都是在调用Student()
,与Person()
没有实际的关系
多态的三个条件:有继承关系、重写了父类的方法、在创建对象时,父类引用指向子类对象