我有一个类“C”,它有一个内部类“Ci”。“C”类继承了“S”类。“S”类也有一个内部类“Si”。“Ci”能继承“Si”吗?非常感谢任何回应的人。
public class OuterClass1 {
class InnerClass1 {
}
}
public class OuterClass2 extends OuterClass1 {
class InnerClass2 extends InnerClass1 {
}
}
这样的事情可能吗?
[![在此输入图片说明][1]][1]
它起作用了。我不确定实施能力。只需确保内部类未声明为公共类[1]:https://i.stack.imgur.com/qgTl8.png
这看起来可能有点奇怪,但Java规范允许这样做。
这里有一个工作示例,使用问题中的文本作为规范:
/*
* I have a class "C", which has an inner class "Ci".
* Class "C" inherits from class "S".
* Class "S" also has an inner class "Si".
* Can "Ci" inherit from "Si"?
*/
class S {
class Si {
}
}
class C extends S {
class Ci extends Si {
@Override
public String toString() {
return getClass().getSimpleName() + " inside " + C.this.getClass().getSimpleName();
}
}
}
public class InnerClasses {
public static void main(String[] args) {
C.Ci ci = new C().new Ci(); // outer class instance must be provided
System.out.println(ci);
}
}
及其输出:
Ci inside C
实际上只是一个非常基本的例子,通常这样一个内部类应该在它的包含类中创建;否则它不应该是一个内部类。
抱歉,目前没有那么有创意,不是一个真实的例子
问题内容: 考虑以下嵌套类。 问题答案: 您可以像这样声明一个对象数组。 并实例化它们,您可以在类中执行类似的操作。
我将简单类添加到我的应用程序中: 应用程序应该使用这个类中的一个对象。当我在活动中使用它时: I get error:无法在不同方法Presmena中定义的内部类中引用非最终变量Asortion。JAVA帮助理解,什么是错的
我尝试了下面的代码,根据它,我理解内部类继承到OuterClass的子类。是正确的吗? 输出除外: 2. 奥特你好。内部的 当这行代码运行时,它应该意味着内部类被继承给了ChildClass 我很困惑,因为我在链接上发现了下面的语句 当外部类由其子类扩展时,成员内部类将不会继承到子类。若要在外部类的子类内使用内部类属性,子类还必须具有内部类,并且该内部类必须扩展外部类的内部类。
伊登 JLS所说的是: 设C是ClassName表示的类。设n是一个整数,使得C是类的第n个词汇封闭类,在该类中出现有条件的this表达式。 [...] 如果当前类不是类C或C本身的内部类,则为编译时错误。 在的情况下,内部类集。这意味着上面的代码应该可以正常工作。发生了什么?
我的主课有两个班(我们称它们为classA和classB)。 是否有机会在classB中设置classA变量? 诸如此类: 非常感谢!问候
问题内容: 我正在使用Apache Commons EqualsBuilder来为非静态Java内部类构建equals方法。例如: 除了声明方法之外,是否有可以参考的引用的语法?有点像(不起作用)? 问题答案: 没有。 最好的方法可能是您所建议的:将getFoo()方法添加到内部类中。