内部类:把类定义在另一个类的内部。
eg:在类Outer的内部定义一个类Inner,此时类Inner为内部类。
内部类分为:成员内部类,静态内部类,局部内部类,匿名内部类。
特征:1.在内部类中可以访问外部类的成员,即使是私有的。
2.内部类是一个独立的类,编译后也会是一个.class文件 , 外部类名$内部类名
3.静态的内部类不能访问外部类非静态成员。
意义:1.封装性:将外部类中的某个功能封装在一个内部类,从而对外隐藏,内部类可以使用外部功能。
2.间接实现多继承
public class SonDemo { class extends_father extends Father{ } class extends_mother extends Mother{ } public void son(){ String Father = new extends_father().powful; String Mother = new extends_mother().wealthy; System.out.println("权力:"+Father+" 财富:"+Mother); } public static void main(String[] args) { new SonDemo().son(); } public class Father{ public String powful = "市长"; } public class Mother{ public String wealthy = "一百万"; } }
如下所示不是一个内部类,是一个.java文件中写了很多个类。一个.java文件中只能写一个public修饰的类。public修饰的类与文件名一致。
public class Demo{
}
class Demo1{
}