关于多态课后习题

来源:10-1 Java 中的多态

qq_你就是无需凭借谁的光_0

2016-05-05 19:49

大家谁完成率本节作业题?我都没搞懂意思,借鉴一下,谢谢

写回答 关注

4回答

  • 染红_街道
    2016-05-06 10:32:19
    已采纳
    建立一个父类,让子类继承其所有方法,获取车名,获取载客量,车辆租用量数,总金额等等
    package class_car;
    
    public class Car {
    
    	private String carName;
    	private int carryCapacity;
    	private int cargoCapacity;
    	private int perMoney;
    	private int perMoney;
    	private	int num;
    	
    	public int getNum() {
    		return num;
    	}
    
    	public void setNum(int _num) {
    		num += _num;
    	}
    	
    	public String getCarName() {
    		return carName;
    	}
    	
    	public int getCarryCapacity() {
    		return carryCapacity;
    	}
    	
    	public int getCargoCapacity() {
    		return cargoCapacity;
    	}
    	
    	public int getPerMoney() {
    		return perMoney;
    	}
    	
    }
    
    子类方法继承,私有对象名字和每辆车的载客数载人数每辆车都用构造函数(构造方法)初始化,其余的不用初始化
    例如
    package class_car;
    
    public class AodiA4 extends Car {
    	public AodiA4(){
    		carName = "奥迪";
    		carryCapacity = 4;
    		perMoney = 500;
    		cargoCapacity = 0;
    		num = 0;
    		moneyAll = 0;
    	}
    	
    	private String carName;
    	private	int carryCapacity,
    		perMoney, cargoCapacity;
    	private int num, moneyAll;
    }

    剩下的 main 函数里  调用选择函数和打印总价函数

    对象编号123456 可以用建立对象数组的方法分别为 012345  不用过说了吧

  • 蔚然成麟er
    2016-10-19 11:52:27

    好像明白了,就是接收Initial中的对象参数Car,AirPlane ,Boat ,前面加的Traffic, 意思是把a声明为Traffic类对对象a的引用,是不是这样呢?

  • 严北
    2016-05-06 16:10:06

    创建父类Traffic.java

    package com.traffic;
    
    public class Traffic {
    	String name = "Traffic";
    	private int passengerCapacity;
    	//Encapsulate passengerCapacity, just for test :D
    	public int getPC(){
    		return passengerCapacity;
    	}
    	public void setPC(int newPC){
    		passengerCapacity = newPC;
    	}
    	/**
    	 * @param a
    	 */
    	public void whoAmI(Traffic a){
    		System.out.println(name + " can load " + a.getPC() + "people.");
    	}
    }

    创建子类Car.java

    package com.traffic;
    
    public class Car extends Traffic {
    	String name = "Car";
    	public void whoAmI(Traffic a){
    		System.out.println(name + " can load " + a.getPC() + " people.");
    	}
    }

    创建子类Airplane.java

    package com.traffic;
    
    public class Airplane extends Traffic {
    	String name = "Airplane";
    	public void whoAmI(Traffic a){
    		System.out.println(name + " can load " + a.getPC() + " people.");
    	}
    }

    创建子类Boat.java

    package com.traffic;
    
    public class Boat extends Traffic {
    	String name = "Boat";
    	public void whoAmI(Traffic a){
    		System.out.println(name + " can load " + a.getPC() + " people.");
    	}
    }

    创建程序人口Initial.java

    package com.traffic;
    
    public class Initial {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// Create objects
    		Traffic car = new Car();
    		Traffic airplane = new Airplane();
    		Traffic boat = new Boat();
    		//set passenger capacity
    		car.setPC(8);
    		airplane.setPC(400);
    		boat.setPC(200);
    		//call function whoAmI()
    		car.whoAmI(car);
    		airplane.whoAmI(airplane);
    		boat.whoAmI(boat);
    	}
    
    }


    严北 回复蔚然成麟er

    这是方法中的参数啊,你调用时候当然要传入一个已经创建的对象。比如你写一个函数int func(int a); 这个a只是个参数而已,你调用函数的时候就得传入一个整型。你理解一下。好好学

    2016-10-18 21:33:03

    共 6 条回复 >

  • qq_你就是无需凭借谁的光_0
    2016-05-06 10:41:47

    感谢,但是没看明白,那些定义的属性都是为啥要在子类中赋值,而不是main方法中赋值。代码没明白意思

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530795 学习 · 6091 问题

查看课程

相似问题