import java.util.*;
class Aircraft{
String aircraftName;
String source;
String destination;
void setdetails(String aircraftName,String source,String destination){
this.aircraftName=aircraftName;
this.source=source;
this.destination=destination;
}
void Aircraft(String aircraftName,String source,String destination){
}
void displayDetails(){
System.out.println("Aircraft Name : "+aircraftName);
System.out.println("Source : "+source);
System.out.println("Destination : "+destination);
}
}
class PublicAircraft extends Aircraft{
private Integer noOfKgsallowed;
private float additionalFeeperkg;
private Boolean checkinbeforetwohours=true;
void setdetails(int noOfKgsallowed,float additionalFeeperkg){
this.noOfKgsallowed=noOfKgsallowed;
this.additionalFeeperkg=additionalFeeperkg;
}
public void PublicAircraft(String aircraftName,String source,String destination,Boolean checkinbeforetwohours,int noOfKgsallowed,float additionalFeeperkg){
}
void displayDetails(){
System.out.println("Aircraft Type : Public Aircraft");
super.displayDetails();
System.out.println("Check in before two hours : "+checkinbeforetwohours);
System.out.println("Number of Kgs allowed per person : "+noOfKgsallowed);
System.out.println("Additional fee charged for extra baggage per kg"+additionalFeeperkg);
}
}
class PrivateAircraft extends Aircraft{
private Boolean checkinbeforetwohours=false;
private String pilotPreference;
private String purpose;
void setdetails(String pilotPreference,String purpose){
this.pilotPreference=pilotPreference;
this.purpose=purpose;
}
void PrivateAircraft(String aircraftName,String source,String destination,Boolean checkinbeforetwohours,String pilotPreference,String purpose){
}
void displayDetails(){
System.out.println("Aircraft Type : Private Aircraft");
super.displayDetails();
System.out.println("Check in before two hours : "+checkinbeforetwohours);
System.out.println("Pilot Name : "+pilotPreference);
System.out.println("Purpose :"+purpose);
}
}
class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String aircraftName=sc.next();
String source=sc.next();
String destination=sc.next();
Aircraft a=new Aircraft();
a.setdetails(aircraftName,source,destination);
int type=sc.nextInt();
if(type==1){
PublicAircraft pub=new PublicAircraft();
Integer noOfKgsallowed=sc.nextInt();
float additionalFeeperkg=sc.nextInt();
pub.super().setdetails(aircraftName,source,destination);
pub.setdetails(noOfKgsallowed,additionalFeeperkg);
pub.displayDetails();
sc.close();
}
else{
PrivateAircraft priv=new PrivateAircraft();
priv.super().setdetails(aircraftName,source,destination);
String purpose=sc.next();
String pilotPreference=sc.next();
priv.setdetails(pilotPreference,purpose);
priv.displayDetails();
}
}
}
Main.java:70:错误:对super的调用必须是构造函数中的第一条语句pub.super()。setdetails(aircraftName,source,destination);^Main.java:70:错误:无法取消引用voidpub.super()。setdetails(aircraftName,source,destination);^Main.java:77:错误:对super的调用必须是构造函数中的第一条语句priv.super()。setdetails(aircraftName,source,destination);^Main.java:77:错误:无法取消引用voidpriv.super()。setdetails(aircraftName,source,destination);
我必须利用继承并为从主要飞机类别派生的公共和私人飞机设定2类,并打印用户输入的详细信息,但是我无法用我的方法打印一半的详细信息。我想知道我将如何修改此代码。
是super.displayDetails()
,不是super().displayDetails()
source并且您只能作为该方法中的第一个调用来调用super
方法。