Java中内部类常见的用法如下:
- 内部类的创建
内部类按名称可分为匿名内部类和一般内部类。
public interface A {
void printStr(String info);
}
public class B {
public A createA() {
//返回匿名内部类
return new A() {
@Override
public void printStr(String info) {
System.out.println(info);
}
};
}
}
内部类按作用域的不同可分为静态内部类和非静态内部类。在创建非静态内部类时默认有一个外部类的引用,所以在创建内部类对象时必须要通过外部类的对象来创建。
public class B {
class C implements A{
@Override
public void printStr(String info) {
System.out.println(info.toUpperCase());
}
}
public static void main(String[] args) {
B b = new B();
A a = b.new C();
}
}
- 内部类的基本使用
在代码编写过程中,如果遇到需要其它类辅助解决问题的情况,而需要创建的这个类只在本类中使用,就可以使用内部类。
可以用内部类的方式间接的实现多重继承。
public class B {
class Extend1 extends Outer{
//....
}
class Extend2 extends Printer{
//...
public Extend2(String info) {
super(info);
}
}
}