多态:
同一方法可以根据发送对象的不同而采取不同的行为方式。
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。
package com.baidu;
public class Tese1 {
public static void main(String[] args) {
Student eat1=new Student();
Person eat2=new Student();
eat1.eat();
eat2.eat();
eat1.zou();
// eat2.zou();
}
}
duo新建一个Tese类
package com.baidu;
public class Person {
public void eat(){
System.out.println("吃过了");
}
}
建一个person类
package com.baidu;
public class Student extends Person{
@Override
public void eat() {
System.out.println("我没吃");
}
public void zou(){
System.out.println("走了");
}
}
建一个studen类继承person类
运行结果:
当tese类中用eat2.zou();是会出现错误,因为eat2是父类的对象,父类中没有zou方法,父类可以指向子类但不能调用子类独有的方法。对象能执行那些方法,主要看对象左边的类型,和右边关系不大。