多态

多态

public class AppLication {
  public static void main(String[] args) {
      //一个对象的实际类型是确定的
      // new Studyend();
      // new Person();

      //可以指向的引用类型就不确定了
      //子类能调用的方法都是自己的或者是继承父类的
      Studyend s1 = new Studyend();

      //父类可以指向子类,但是不能调用子类独有的方法
      Person s2 = new Studyend();//父类的引用指向子类
      Object s3 = new Studyend();//父类的引用指向子类

      s2.run();//子类重写了父类的方法,所以执行子类的方法
      s1.run();
      s1.eat();

      /*
      多态注意事项
      -多态是方法的多态,属性无多态

      存在条件
      -有extends关系
      -方法需要重写
      -父类指向子类对象
      -没有联系则会出现类型转换异常(ClassCastException)

      那些方法不能重写?
      -static:属于类不属于实例
      -final:常量
      -private:私有
        */
  }
}
public class Person {
  public void run(){
      System.out.println("run");
  }
}
public class Studyend extends Person{

  @Override
  public void run() {
      System.out.println("son");
  }

  public void eat(){
      System.out.println("eat");
  }
}

 

posted @ 2021-10-16 00:49  fantasyfa  阅读(53)  评论(0)    收藏  举报