public class Test {
int i;
public int b;
private int a;
class A{
public void setTest3Fileds(){
Test.this.i=1;
Test.this.b=2;
Test.this.a=3;
}
}
public void setInfo(){
//外部的类要用自己的内部类的方法,得先new内部类的对象
new A().setTest3Fileds();
}
public void set(){
this.i=10;
}
public static void main(String[] args) {
Test t1 = new Test();
//开始没调用setInfo,导致输出都为0。
t1.setInfo();
System.out.println(t1.i);
System.out.println(t1.b);
System.out.println(t1.a);
}
}
输出结果:
1
2
3
内部类最大的作用是实现多重继承
public class Test2 {
public static void main(String[] args) {
new A().testB();
new A().testC();
}
}
/*
现在类A想同时获得类B和类C的方法,并且重写
可以使用内部类来变相的实现类的多重继承,可以同时继承多个类
*/
class A{
public void testB(){
new InnerB().testB();
}
public void testC(){
new InnerC().testC();
}
private class InnerB extends B{
@Override
public void testB(){
System.out.println("这是重写的testB");
}
}
private class InnerC extends C{
@Override
public void testC(){
System.out.println("这是重写的testC");
}
}
}
class B{
public void testB(){
}
}
class C{
public void testC(){
}
}
输出结果:
这是重写的testB
这是重写的testC