_Doogie
2016-12-08 11:52
有谁能解释下多态的用处在哪呢?自己不太明白 //Traffic类 package com.edu; public class Traffic { public String TrafficName; //交通工具的名称 public int maxNum; //交通工具的最大承载量 public void showData(){ System.out.println(TrafficName+"这种交通工具最多允许乘坐:"+maxNum+"人"); } } //Car类 package com.edu; public class Car extends Traffic{ public Car(int max){ TrafficName = "汽车"; maxNum = max; } } //Boat类 package com.edu; public class Boat extends Traffic{ public Boat(int max){ TrafficName = "小船"; maxNum = max; } } //Intial类 package com.edu; import java.util.Scanner; public class Initial { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Traffic tool = new Traffic(); System.out.print("请输入交通工具的名称:"); Scanner input = new Scanner(System.in); String TrafficName = input.next(); System.out.print("请输入交通工具的最大乘载量:"); int maxNum = input.nextInt(); if(TrafficName.equals("汽车")){ tool = new Car(maxNum); }else if(TrafficName.equals("小船")){ tool = new Boat(maxNum); } tool.showData(); } }
你这是方法的多态,通过父类的引用tool分别指向子类的对象Car或Boat,同时执行各自的构造函数,写入maxNum,然后通过调用没有重写的父类方法showData()输出所需信息。
666666
不是 我试了你这个 你好像没用到子类啊
子类Car类和Boat类的载人情况的输出都使用了父类的showData()方法,统一了调用使程序更加直观明了(如果分别在Cal类和Boat类自己定义方法的话会使用户不明所以)
Java入门第二季 升级版
530666 学习 · 6091 问题
相似问题