1、使用内部类的原因:内部类+接口可以实现多继承(让内部类继承接口)
2、应用场景:当你要实现的接口中,有一个方法与类中的方法名称和参数列表相同时,可以使用内部类实现接口。
public interface Contents {
}
public interface Destination {
}
public class Goods {
private class Content implements Contents { }
protected class GDestination implements Destination { }
}
3、内部类分类:静态内部类、成员内部类、局部内部类、匿名内部类
1)静态内部类是由static修饰的内部类。静态内部类没有指向外部的引用,也就是静态内部类没有办法使用内部类中非static修饰的外部类方法。
2)成员内部类:就是普通的内部类,可以由public(任何对象都可以访问)、protected(同一类中的对象和子类可以访问)、private(同一类中对象可以访问)修饰。
3)局部内部类:作用在一个方法或者作用域上的类。
4)匿名内部类:没有名字的方法内部类。因为没有名字,因此没有构造方法,它必须实现和继承一个接口或抽象类,并且没有访问修饰符,也没有任何静态成员和方法。