当前位置: 首页 > 面试题库 >

继承无效

严元白
2023-03-14
问题内容

从我的代码中,我希望我的卧室类继承超类-房间的长度和宽度。我已在评论的相应行中填充了错误。我遇到错误,找不到出路。请帮帮我?

package index;

public class Room {
int length;
int breadth;

Room(int x,int y)
{
    length = x;
    breadth = y;
}
int area(){
    return (length*breadth);
}
}

class BedRoom extends Room{      //Implicit super constructor Room() is undefined for default constructor. Must define an explicit constructor
    int height;
    public void Bedroom(int x,int y,int z)
    {
        super(x,y);    //Constructor call must be the first statement in a constructor
        height=z;
    }


int volume(){
    return (length*breadth*height);
    }
}
class InherTest
{
    public static void main(String args[])
    {
        BedRoom room1 = new BedRoom(14,12,10); //The constructor BedRoom(int, int, int) is undefined
        int area1 = room1.area();
        int volume1 = room1.volume();
        System.out.println("Area1 = "+area1);
        System.out.println("Volume1 = "+volume1);
    }

}

问题答案:

您的BedRoom类具有 伪构造函数, 而不是真正的构造函数。构造函数不返回任何内容,也不返回空值。摆脱该无效声明。

更改

public void Bedroom(int x,int y,int z)

public BedRoom(int x,int y,int z) // also capitalize correctly


 类似资料:
  • X:我有一个不相关的类似容器的对象(向量、映射、树、...)的集合,处理不同不相关类型的对象。这些容器中对象的生命周期在它们的某些子集之间共享。我有一个负责它们同步的对象。我能想到的同步类的最简单实现是有一个指针的向量,其中将是一个为我要管理的所有类似容器的对象实现公共接口的类。但并不是所有的都像容器一样。它们可以用作容器,但是让它们继承一个通用的基类感觉很奇怪,我害怕它会非常强烈地耦合我的设计。

  • FAQs in section [24]: [24.1] 如何表示“私有继承”? [24.2] 私有继承和组合(composition)有什么类似? [24.3] 我应该选谁:组合还是私有继承? [24.4] 从私有继承类到父类需要指针类型转换吗? [24.5] 保护继承和私有继承的关系是什么? [24.6] 私有继承和保护继承的访问规则是什么? 24.1 如何表示“私有继承”? 用 : priv

  • 问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方

  • 有人能解释我这里发生了什么,为什么? 此代码的输出将是3 3,3,3。 如果我只用 getter 取消注释第 1 行,输出将是 3 2、2、2。 如果我只用setter取消对第2行的注释,输出将是1 1,1,1。 如果我取消对第1行和第2行的注释(用setter和getter),输出将是1 3,3,3。 如果用子类中的代码覆盖父类中的方法,则该覆盖方法不能访问私有成员变量,即使父类中被覆盖的方法可

  • 一个类可以从另一个类继承方法、属性和其他的特性。当一个类从另一个类继承的时候,继承的类就是所谓的子类,而这个类继承的类被称为父类。在 Swift 中,继承与其他类型不同的基础分类行为。 在 Swift 中类可以调用和访问属于它们父类的方法、属性和下标脚本,并且可以提供它们自己重写的方法,属性和下标脚本来定义或修改它们的行为。Swift 会通过检查重写定义都有一个与之匹配的父类定义来确保你的重写是正

  • 本页包含内容: 定义一个基类(Base class) 子类生成(Subclassing) 重写(Overriding) 防止重写 一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性。当一个类继承其它类时,继承类叫子类(subclass),被继承类叫超类(或父类,superclass)。在 Swift 中,继承是区分「类」与其它类型的一个基本特征。