求大神賜教
main
import java.util.Scanner;
public class text {
public static void main(String[] args) {
car car1=new car(1,"寶馬",4,400);//為什么寫成dada?car1=new car(1,"寶馬",4,400);就報錯
truck truck1=new truck(2,"景龍",2000,500);
pickup pickup1=new pickup(3,"皮卡",4,1000,600);
System.out.println("歡迎使用噠噠租車系統(tǒng)!");
// TODO Auto-generated method stub
? ? ? ? System.out.println("你是否要租車?是1,否0");
? ? ? ?
? ? ? ? Scanner in = new Scanner(System.in);
? ? ? ? ?int i = in.nextInt();
? ? ? ? ?if(i==0){
? ? ? ? System.out.println("歡迎下次光臨!") ;
? ? ? ? ?}
? ? ? ? ?else{
? ? ? ? System.out.println("你可以租車的類型及其價目表:");
? ? ? ? System.out.println("序號 ? ? ? ? ? "+"汽車 ? ? ? ? ? ? "+"容量 ? ? ? ? ? ? ? ? ? "+"租金 ? ? ? ? ? ?");
? ? ? ? car1.getcar();
? ? ? ? ? ? truck1.gettruck();
? ? ? ? ? ? pickup1.getpickup();
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?System.out.println("請輸入你想租借的車序號");
? ? ? ? ?Scanner or = new Scanner(System.in);
? ? ? ? ?int order = in.nextInt();
? ? ? ? ?System.out.println("請輸入你想租借天數(shù)");
? ? ? ? ?Scanner nu = new Scanner(System.in);
? ? ? ? ?int number = in.nextInt();
? ? ? ? ?switch(order){
? ? ? ? ?case 1: System.out.println("總費用為:"+400*number);break;
? ? ? ? ?case 2: System.out.println("總費用為:"+500*number);break;
? ? ? ? ?case 3: System.out.println("總費用為:"+600*number);break;
? ? ? ? ?}
? ? ? ? ?
}
}
}
dada類
public class dada {
String name;
int rent;
? ?int people;
? ?int goods;
? ?int order;
? ?public int getpeople(){
? return people;
? }
? ?public int getgoods() {
? return goods;
? }
? ?public String getname() {
? return name;
? }
? ?public int ?getrent() {?
? return rent;
? }
? ?public int ?getorder() {
? return order;
? }
? ?
}
car類
public class car extends dada {
public car(int o,String n,int p,int r ){
order=o;
name=n;
people=p;
rent=r;
}
? ? public void getcar(){
? ? System.out.println(order+" ? ? "+name+" ? ? ? "+people+" ? ? ? ?"+rent+" ");
? ? }
}
pickup類
public class pickup extends dada {
public pickup(int o,String n,int g,int p,int r ){
order=o;
name=n;
goods=g;
people=p;
rent=r;
}
? ? public void getpickup(){
? ? System.out.println(order+" ? ? "+name+" ? ? ? "+goods+"/"+people+" ? ?"+rent+" ");
? ? }
}
truck類
public class truck extends dada {
public truck(int o,String n,int g,int r ){
order=o;
name=n;
goods=g;
rent=r;
}
? ? public void gettruck(){
? ? System.out.println(order+" ? ? "+name+" ? ? ? ? "+goods+" ? ? "+rent+" ");
? ? }
}
2016-11-17
剛才把你的工程跑了一遍,其實對于"為什么寫成dada car1=new car(1,"寶馬",4,400);就報錯"這個問題我發(fā)現(xiàn),此時報錯的并非dada car1=new car(1,"寶馬",4,400);
而是car1.getcar();
因為你父類dada中并沒有g(shù)etcar()方法,所以導(dǎo)致錯誤。歸根結(jié)底還是對于多態(tài)沒有理解透徹。
對于父類引用指向子類對象而言,該引用只能調(diào)用父類中定義的方法和變量; 這就是原因了。
2016-11-05
剛開始學(xué)習(xí),求賜教