Java多态
注意事项:
- 多态是方法的多态,属性没有多态
- 父类和子类有联系
- 父类可以指向子类
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();
示例:
package com.oop.demo06;
//父类
public class Person {
public void run(){
System.out.println("run");
}
}
package com.oop.demo06;
//子类
public class Students extends Person{
@Override//方法重载
public void run() {
System.out.println("son");
}
public void sleep(){
System.out.println("sleep");
}
}
package com.oop;
import com.oop.demo06.Person;
import com.oop.demo06.Students;
//一个项目应该只存在一个main方法
//测试类
public class Application {
public static void main(String[] args) {
//对象能执行哪些方法,主要看对象左边的类型,和右边的关系不大!!
Students s1 = new Students();
//父类的引用可以指向子类的类型
Person s2 = new Students();
Object s3 = new Students();
s2.run();//本来是引用Person类的方法,但是子类重写了父类的方法,执行了子类的方法
s1.run();
//子类可以引用父类的方法,但是父类不可以引用子类独有的方法
s1.eat();
s2.sleep();//这个代码是错误的,执行不了的。举例子,父类不可以引用子类独有的方法
//输出的结果为:son
// son
// eat
}
}