码迷,mamicode.com
首页 > 编程语言 > 详细

【Java 基础篇】【第十课】多态

时间:2014-11-05 21:11:00      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   os   使用   java   sp   div   

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的BrokenCup
10         guest.drink(hisCup, 10);
11     }
12 
13 }
14 
15 class Human
16 {
17     void drink(Cup aCup, int w)
18     {
19         aCup.drinkWater(w);
20     }
21 }
22 
23 // 水杯
24 class Cup
25 {
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 Cup
41 {
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 基础篇】【第十课】多态

标签:style   blog   color   ar   os   使用   java   sp   div   

原文地址:http://www.cnblogs.com/by-dream/p/4077198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!