Java '的含义;包含类的子类';在爪哇?
我在阅读时遇到了“包含类的子类”这个表达式。在Java中,包含类的Java '的含义;包含类的子类';在爪哇?,java,class,Java,Class,我在阅读时遇到了“包含类的子类”这个表达式。在Java中,包含类的是什么意思?这是报纸的摘录 这主要包括三件事:(i)研究实体的实现及其用法,以推断功能背后的意图;(ii)对实体及其引用的任何其他类型、方法或字段(包括常量)执行静态依赖性分析;以及(iii)检查包含类的继承层次结构和子类。应用此方法花费了大量时间和精力。此示例具有包含类的子类: class Parent { class Child { } } class ParentSubclass extends Paren
是什么意思?这是报纸的摘录
这主要包括三件事:(i)研究实体的实现及其用法,以推断功能背后的意图;(ii)对实体及其引用的任何其他类型、方法或字段(包括常量)执行静态依赖性分析;以及(iii)检查包含类的继承层次结构和子类。应用此方法花费了大量时间和精力。
此示例具有包含类的子类:
class Parent {
class Child {
}
}
class ParentSubclass extends Parent {
void whatever() {
new Child(); // Creates an instance of Parent.Child
}
}
ParentSubclass
是包含子类的子类。请注意,在父类
(或其子类)之外,新建子类()
将不起作用,因为您需要一个包含(“外部”)类来实例化非静态
“内部”类
当您现在将一个方法doSomething
添加到Parent
,在Child
中调用它,但在ParentSubclass
中重写它时,事情会变得有点疯狂
class Parent {
void doSomething() {
System.out.println("Not doing anything");
}
class Child {
void whatever() {
doSomething(); // actually: Parent.this.doSomething()
}
}
}
class ParentSubclass extends Parent {
void doSomething() {
System.out.println("I'm just slacking.");
}
void whatever() {
Child a = new Child(); // Creates an instance of Parent.Child
a.whatever(); // will print "I'm just slacking".
}
}
像这样的情况使得静态代码分析成为一个相当困难的问题。因为我没有这篇论文,这是我最好的猜测:在Java中,类可以以多种方式相互关联:除了从彼此继承之外,类还可以嵌套在彼此内部
下面是一个从嵌套类继承的类的示例:
public class Outer {
public void doSomething() {
// ...does something
}
private static class Inner extends Outer {
public void doSomething() {
// ...does something else
}
}
}
在上面的示例中,内部
继承自外部
,它作为其包含类。哪个元素的包含类的子类?上下文应该澄清该元素。如果您发布更多原始报价的上下文,将会有所帮助。“包含”是一个相当宽泛的术语。你能把你在那篇文章中读到的部分贴出来吗。static
内部类不是真正嵌套的。出于所有实际目的,它们也可以放在同一个包中。为什么需要扩展外部
?@Anony Mousse那么,嵌套的静态
类确实可以访问其声明为私有
的外部类的元素,而不是共享同一包的其他顶级类可以访问的包私有元素。扩展外部
用于创建一个同时嵌套和继承的类。