/*** @Description 什么是多态*/
package com.oop;import com.oop.demo06.Person;
import com.oop.demo06.Student;public class Application {public static void main(String[] args) {//一个对象的实际类型是确定的//new Student();//new Person();//可以指向的引用类型就不确定了:父类的引用指向子类//Student 能调用的方法都是自己的或者继承父类的!Student s1 = new Student();//Person 父类型,可以指向子类,但是不能调用子类独有的方法Person s2 = new Student();Object s3 = new Student();//对象能执行那些方法,主要看对象左边的类型,和右边关系不大!5s2.run();//子类重写了父类的方法,执行子类的方法s1.run();}}
/*** @Description 什么是多态*/
package com.oop.demo06;public class Student extends Person{@Overridepublic void run(){System.out.println("son");}public void eat(){System.out.println("ear");}}
/*** @Description 什么是多态*/
package com.oop.demo06;public class Person {public void run(){System.out.println("run");}}/*
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系 类型转换异常! ClassCastException!
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! father f1 = new Son();1.static 方法,属于类,它不属于实例2.final 常量:3. private:*/