多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式,一个对象的实际类型是确定的,但可以只想对象的引用类型有很多。
多态存在的特点:
1.有继承关系
2.子类重写父类的方法
3.父类引用指向子类对象
注意:多态是方法的多态,属性不存在多态
public class Application {
public static void main(String[] args) {
//一个对象的实际类型是确定的
//但是可以指向的引用类型就是不确定的了:父类的引用指向子类
//子类可以调用自己的或者父类的方法
Student s1 = new Student();
//父类不能调用子类中存在,但是父类中没有的方法
Person s2 = new Student();
Object s3 = new Student();
s1.test();
s2.test();//子类重写了父类的方法就会调用子类的方法
/*
* s2.eat(); 父类不能引用子类中存在但是父类没有的方法
* */
}
}
public class Student extends Person{
@Override
public void test() {
System.out.println("AAA");
}
public void eat(){
System.out.println("eat");
}
}
public class Person {
public void test(){
System.out.println("run");
}
}