父类的构造函数不能应用于子构造函数中的给定类型

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)

Era*_*ran 5

由于Flat没有构造函数接受int和boolean,因此您必须创建一个或FlatPenthouse构造函数中显式调用您想要的构造函数:

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).你的代码很难阅读.