java-多态



//Person 类,作为父类
public class Person {
public void run(){
System.out.println("run");
}
}

//学生类,作为子类
public class Student extends Person{
@Override
public void run() {
System.out.println("学生");
}
  public void  eat(){
System.out.println("吃");
  }

}


public class Application {
public static void main(String[] args) {

//引用类型不确定:父类的引用指向子类的对象
//Student 能调用的方法是自己的或者继承父类的
Student s1 = new Student();
//Person 父类型, 可以指向子类,不能调子类独有的方法
Person s2 = new Student();
Object s3 = new Student();

//对象能执行哪些方法,主要看对象左边的类,和右边关系不大
s1.run();
s2.run();//子类重写父类的方法,执行子类的方法
     ((Student)s2).eat();//把Person 类型转换为 Student类型
    }
注意:
1. 多态是方法的多态,属性没有多态
2. 父类和子类,有联系 类型转换异常
3. 存在条件: 继承关系,方法需要重写,父类引用指向子类对象!
  不能被重写的:
  1.static 方法,属于类,他不属于实例
  2.final 常量
  3.private(私有的) 方法;

运行时动态绑定的


posted @ 2020-12-25 09:34  面瘫患者  阅读(45)  评论(0编辑  收藏  举报