1.定义
可以将一个类的定义放在另一个类的定义的内部,这就是内部类
2.为什么要用内部类
1. 内部类允许继承多个非接口类型(具体类和抽象类)
每个内部类都能独立地继承一个接口的实现,所以无论外围类是否已经继承了某个接口的实现,对于内部类都没有影响。
内部类提供的,可以继承多个具体的或抽象的类的能力,它使得多重继承的方案变得完整。
需求:必须在一个类中以某种方式实现两个接口。可以使用单一类实现两个接口,也可以使用内部类
interface A{}
interface B{}
class X implements A,B{}
class Y implements A{
B makeB(){
return new B(){};
}
}
如果拥有的是抽象的类或具体的类,只能使用内部类才能实现多重继承
class D{}
abstract class E {}
class Z extends D{
E makeE() {
return new E(){};
}
}
public class MultiImplementation {
static void taskD(D d){}
static void taskE(E e){}
public static void main(String[] args) {
Z z = new Z();
taskD(z);
taskE(z.makeE());
}
}
2.
....待续
网友评论