多态
- 即同一方法可以根据发送对象的不同而采用不同的行为方式
- 一个对象的实际类型是确认的,但可以指向对象的引用的类型有很多中
java
package Demo01;
public class Person {
public void test(){
System.out.println("父类");
}
}
java
package Demo01;
public class Student extends Person{
public void test(){
System.out.println("子类");
}
public void test1(){
System.out.println("11");
}
}
java
package Demo01;
public class Application {
public static void main(String[] args) {
//可以指向的引用类型就不确定了:父类的引用指向子类
//一个类的实际类型是确定的 new Student()
//Student()能使用的方法都是自己的或者是继承父类的
Student student = new Student();
Person person=new Student();
Object object=new Student();
//子类可以调用继承父类的方法,父类无法调用子类独有的方法
student.test();//子类重写父类的方法,执行子类的方法
person.test();
student.test1();
//person.test1();无法使用
}
}
输入结果为:
子类
子类
11
注意点
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系,类型转换异常!ClassCastException!
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象!Person person=new Student();
不可重写的情况:
- static 方法,属于类,它不属于实例
- final常量
- private方法