内部类这概念以前真的没接触过,只是最近看书看到,实际代码中可能应用得不是很多,不过还是记录一下免得忘了。
内部类是指在一个类里面,也就是外部类,定义并实现另一个类,叫做内部类。内部类可以访问外部类的所有实例属性和方法,无论是公有还是私有的。
内部类的意义主要是为了解决多继承的问题,JAVA是不可以多继承的,通常是通过接口来解决,可是接口意味着必须实现所有的抽象类,不太方便,此时可以利用内部类,用内部类去继承需要方法的父类,外部类去继承实际的父类。
举个例子
public void Bark(){
Noise noise=new Noise();
noise.MakeNoise();
}
public class Noise extends Sound{
}
public static void main(String[] args){
Dog dog=new Dog();
dog.Bark();
}
}
public class Sound {
public void MakeNoise(){
System.out.println("make noise");
}
}
这样Dog对象既可以使用Sound的方法,也可以继承属于自己的父类,例如Animal之类的。