ERJ*_*JAN -1 java inheritance constructor
我将平顶舱的顶层公寓扩建.我知道当我从扩展类创建对象时,首先调用父的构造函数.
但我不知道为什么我不能改变Penthouse构造函数来初始化只存在于Penthouse中的新字段.我应该如何更改我的Penthouse构造函数,以便它不与Flat构造函数冲突?
error:构造函数Flat中的Flat不能应用于给定的类型; 阁楼(int new_jakuzi,boolean has_elev){
class Penthouse extends Flat{
int number_jakuzi ;
boolean has_elevator;
Penthouse(int new_jakuzi, boolean has_elev){
cena = 0 ;
address = "unknown";
number_jakuzi = new_jakuzi;
has_elevator = has_elev ;
}
Penthouse(String novi_addrees, int novi_cena){
}
void advertise(){
System.out.println("great penthouse on sale!" +
" number of jakuzi " + number_jakuzi +
" it has elevator: " + has_elevator+
" at price: " + cena) ;
}
}
class Flat{
int cena ;
String address;
Flat(String novi_address, int new_cena){
cena = new_cena ;
address = novi_address ;
}
void show_data(){
System.out.println("cena: " + cena + " address: " + address);
}
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Flat x = new Flat("bogenbai", 45);
x.show_data();
}
}
Run Code Online (Sandbox Code Playgroud)
由于Flat没有构造函数接受int和boolean,因此您必须创建一个或Flat从Penthouse构造函数中显式调用您想要的构造函数:
Penthouse(int new_jakuzi, boolean has_elev){
super ("something", 15); // for example;
cena = 0 ;
address = "unknown";
number_jakuzi = new_jakuzi;
has_elevator = has_elev ;
}
Run Code Online (Sandbox Code Playgroud)
PS请为您的标识符使用Java命名约定(例如,hasElevator而不是has_elevator).你的代码很难阅读.