Java内部类

2018-11-26  本文已影响0人  NowBurn

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.

....待续

上一篇下一篇

猜你喜欢

热点阅读