在Java中,内部类是定义在另一个类中的类。它们可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。下面是如何在子类中实现这些内部类的示例。
public class OuterClass {
private String message = "Hello from OuterClass";
// 成员内部类
public class InnerClass {
public void printMessage() {
System.out.println(message);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.printMessage();
}
}
public class OuterClass {
private String message = "Hello from OuterClass";
public void createLocalInnerClass() {
// 局部内部类
class LocalInnerClass {
public void printMessage() {
System.out.println(message);
}
}
LocalInnerClass localInner = new LocalInnerClass();
localInner.printMessage();
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
outer.createLocalInnerClass();
}
}
public class OuterClass {
private String message = "Hello from OuterClass";
public void createAnonymousInnerClass() {
// 匿名内部类
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println(message);
}
};
new Thread(runnable).start();
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
outer.createAnonymousInnerClass();
}
}
public class OuterClass {
private static String message = "Hello from OuterClass";
// 静态内部类
public static class StaticInnerClass {
public void printMessage() {
System.out.println(message);
}
}
public static void main(String[] args) {
OuterClass.StaticInnerClass staticInner = new OuterClass.StaticInnerClass();
staticInner.printMessage();
}
}
在这些示例中,我们展示了如何在子类中实现不同类型的内部类。注意,静态内部类不能访问外部类的非静态成员,而其他类型的内部类可以访问外部类的所有成员。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。