首页 > 代码库 > 【Java 基础篇】【第十课】多态
【Java 基础篇】【第十课】多态
Java的多态使用方法和C++基本是一样的。
看代码吧。
1 public class ten 2 { 3 public static void main(String[] args) 4 { 5 Human guest = new Human(); 6 BrokenCup hisCup = new BrokenCup(); 7 8 // 虽然Human中的函数drink的参数一为Cup, 9 // 但是多态的机制决定了它调用的是继承自Cup的BrokenCup10 guest.drink(hisCup, 10);11 }12 13 }14 15 class Human16 {17 void drink(Cup aCup, int w)18 {19 aCup.drinkWater(w);20 }21 }22 23 // 水杯24 class Cup25 {26 private int water = 0;27 28 public void addWater(int w)29 {30 this.water = this.water + w;31 }32 33 public void drinkWater(int w)34 {35 this.water = this.water - w;36 }37 }38 39 // 破杯子40 class BrokenCup extends Cup41 {42 // 重写了父类的方法43 public void addWater(int w)44 {45 System.out.println("shit, broken cup");46 }47 48 public void drinkWater(int w)49 {50 System.out.println("oh, no water inside");51 }52 }
输出为:
oh, no water inside
总结一下:
1. Java中,所有的类都继承自Object类。Object类提供了一些方法,比如toString()。我们可以在自己的类定义中覆盖这些方法。
2. 我们可以将一个基类引用向下转型(downcast)成为衍生类的引用,但要求该基类引用所指向的对象已经是所要downcast的衍生类对象。比如可以将上面的hisCup向上转型为Cup类引用后,再向下转型成为BrokenCup类引用。
【Java 基础篇】【第十课】多态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。