zoukankan      html  css  js  c++  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的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类引用。

  • 相关阅读:
    修改表结构
    enum/set 约束
    MYSQL 数据类型
    表和数据的基础操作
    存储引擎
    mysql
    HTML 介绍
    selor模块
    select
    协程
  • 原文地址:https://www.cnblogs.com/by-dream/p/4077198.html
Copyright © 2011-2022 走看看