内部类特性:
一:Inner class 可以作为类的成员
1.可以声明为final的;
2.和外部类不一样,Inner class 可以声明为private 或protected ;
3.Inner class 可以声明为static的,这时候不能用外层的非static 的成员变量;
二:Inner class 可以作为类
1.可以声明为abstract类,可以被其他类继承。
非static 的内部类的成员不能声明为static的;
只有在外部类或者static的内部类中才能声明static 成员
问题????内部类有什么用?
**用来解决java不能多重继承的问题。**
例子
*** 现在类A想同时获得类B和类C的方法,并且重写
- 因为java不支持多重继承 不能写class A extends B,C
- 可以通过内部类来变相的实现类的多重继承,可以同时继承多个类**
public class Test1{
public static void main(String[] args) {
A a= new A();
a.test();
}
}
/**
* 现在类A想同时获得类B和类C的方法,并且重写
* 因为java不支持多重继承 不能写class A extends B,C
* 可以通过内部类来变相的实现类的多重继承,可以同时继承多个类
* @author 惹尘
*
*/
class A {
public void test(){
new InnerB().testB();//外部类要使用内部的方法,需要先new内部类的对象
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(){
}
}