【Java 基础篇】【第十课】多态
来源:互联网 发布:淘宝抱歉无法付款方式 编辑:程序博客网 时间:2024/05/23 23:26
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类引用。
0 0
- 【Java 基础篇】【第十课】多态
- Java语言程序设计(基础篇)第十版
- Java语言程序设计(基础篇)第十版
- Java语言程序设计(基础篇)第十版
- JAVA语言程序设计(基础篇)第十版
- Java基础---第十一天 多线程
- Java基础笔记-第十记
- Java基础第十九天--GUI
- java基础第十天 接口
- java基础第十一天 异常
- java基础第十五天 集合
- java基础第十八天 多线程
- Java基础部分第十三节
- Java基础部分第十五节
- Java基础部分第十八节
- java语言程序设计基础篇第十章编程练习题
- Java语言程序设计基础篇第十版第一章编程练习题答案
- 【java语言程序设计基础篇第十章第三题】
- 【Java 基础篇】【第六课】接口interface
- 【Java 基础篇】【第七课】组合
- 【Java 基础篇】【第八课】package包
- 【Java 基础篇】【第九课】继承
- MySQL性能优化的最佳20+条经验
- 【Java 基础篇】【第十课】多态
- 【Java 进阶篇】【第一课】String类
- What is the best way to calculate a checksum for a file that is on my machine?
- 【Java 进阶篇】【第二课】异常处理
- java实现:打印前n个质数
- 【Android开发学习笔记】【第六课】Activity的生命周期-下
- 【Android开发学习笔记】【第七课】五大布局-上
- 【Android开发学习笔记】【第八课】五大布局-下
- 【Android开发学习笔记】【第九课】重力感应