Java 내부 클래스 상속: 내보낸 클래스가 인스턴스화될 때 내보낸 클래스의 인스턴스에 연결할 주변 클래스 개체가 없기 때문입니다. 따라서 외부 클래스를 생성하고 특정 구문을 사용하여 내부 클래스와 외부 클래스 간의 관계를 표시해야 합니다.
Java 내부 클래스 상속:
Java 내부 클래스의 생성자는 외부 클래스 개체를 가리키는 참조에 연결되어야 합니다(내부 클래스를 구성하려면 외부 클래스에 대한 참조를 제공해야 함). 클래스 객체의 경우 내부 클래스는 외부 클래스 객체에 의존하므로 내부 클래스를 상속할 때 파생 클래스의 생성자에서 기본 클래스 생성자에 대한 호출을 수동으로 추가해야 합니다.
내보낸 클래스가 인스턴스화될 때 내보낸 클래스의 인스턴스에 연결할 주변 클래스 개체가 없기 때문입니다.
따라서 외부 클래스를 만든 다음 특정 구문을 사용하여 내부 클래스와 외부 클래스 간의 관계를 나타내야 합니다.
다음 예에서는 파생 클래스 InheritInner에 내부 클래스의 외부 클래스 참조를 제공해야 합니다. 일반적인 상속의 경우 파생 클래스 생성자에 super();
,而内部类则需要外围类对象引用.super()
;
class WithInner{ class Inner{} } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ wi.super(); //wi的父类是object } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
만 추가하면 됩니다. 게다가 상속된 내부 클래스에 기본이 아닌 생성자만 있는 경우 어떻게 해야 할까요?
class WithInner{ class Inner{ public Inner(int i){ System.out.println(i); } } } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ int i=0; wi.super(i);//如代码所示,当被继承的构造器需要参数时,应把参数传递给这个super函数 } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
관련 학습 권장사항: java 기본 튜토리얼
위 내용은 Java의 내부 클래스 상속이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!