多态
- 子类重写父类的方法(子类重写了父类的方法,所以调用方法调用的是子类的方法)
public class Person {
public void run(){
System.out.println("Person=>run");
}
}
public class Student extends Person{
public void run(){
System.out.println("Student=>run");
}
public void eat(){
System.out.println("Student=>eat");
}
}
import opp.Dome_1.Student;
public class Test {
public static void main(String[] args){
Student s0 =new Student();
Person s1= new Student();
Person p1=new Person();
s0.run();
s1.run();
p1.run();
}
}
- 父类无法调用子类独有的方法(可以调用的方法与左边有关)
public class Test {
public static void main(String[] args){
Student s0 =new Student();
Person s1= new Student();
Person p1=new Person();
s0.eat();
((Student) s1).eat();
}
}
- 多态的注意事项
- 多态是方法的多态,属性没有多态
- 父类和子类有联系,不能随便两个没有父子关系的类,不然有类型转换错误 ClassCastException!
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象Father f=new Son();