多态性


1、多态性的体现:
    方法的重载和重写
    对象的多态性
2、对象的多态性
    向上转型:程序会自动完成
        父类 父类对象 = 子类实例
    向下转型:强制类型转换
        子类 子类对象 = (子类)父类实例

public class A {
  public void tell1() {
    System.out.println("A----tell1");
  }
  public void tell2() {
    System.out.println("A----tell2");
  }
}

public class B extends A {
  public void tell1() {
    System.out.println("B----tell1");
  }
  public void tell3() {
    System.out.println("B----tell3");
  }
}

public class Demo {
  public static void main(String[] args) {
    // 向上转型
    B b = new B();
    A a = b;
    a.tell1(); // 因为tell1方法被B类重写了,所以调用的是重写之后的方法
    a.tell2();
    // Output result:
    // B----tell1
    // A----tell2
    // 向下转型
    A a = new B(); // 注意此处是 new B(),因为如果 new A() ,那么new出来的对象与B是没有什么直接关系的,因此 进行强转时会报错:不能转换为B类型
    B b = (B)a;
    b.tell1();
    b.tell2();
    b.tell3();
    // Output result:
    // B----tell1
    // A----tell2
    // B----tell3
  }
}

接口当中只允许存在抽象方法

interface USB {
  void start(); // 可以省略 public abstract
  void stop();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 时间:2018-07-21 作者:魏文应 一、对象的多态性 看上面代码,你会发现,一般我们是 Person p ...
    秋的懵懂阅读 236评论 0 0
  • 面向对象的特征三:多态性 1、多态性指的是什么?多态性,可以理解为一个事物的多种表现形态。 1)方法的重载与重写 ...
    Girl_endless阅读 399评论 0 2
  • 一、基本概念 Java是一门面向对象的程序设计语言,因为Java具备面向对象的三个基本特征:封装、继承和多态。这三...
    小李弹花阅读 463评论 0 0
  • 现在已经学习完了关于继承的所有概念,但是并不意味着只要使用继承就可以实现代码的全部重用,而在继承之后又有了一个重要...
    河神_6961阅读 272评论 0 0
  • 阳台部分相信很多业主都会封起来,封起来有什么好处呢? 首先是防盗作用 相信很多人的第一目的就是为了防止偷到的情况,...
    名字都被用了用啥阅读 404评论 0 0