多态


同一批事物,它们都是由一个事物泛生得出的(也就是继承),这一批事物我们可以用一个分类去归纳。比如我们生存需要进食,牛肉、猪肉、鸡肉等,当我们处于一个饥饿的状态下,不管什么肉,都会食取充腹;又如,在建房子上,可以聘请不同的设计师来帮我们完成,不管是国外的还是国内的。

多态亦是如此,通过父类就能引用不同的子类,同一个行为具有多个不同表现形式或形态的能力,这可以使我们无需关注某个对象具体是什么类型,就可以去调用该对象的方法,提高了程序的灵活性

//假设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()没有实际的关系

多态的三个条件:有继承关系、重写了父类的方法、在创建对象时,父类引用指向子类对象

相关