在Java中,被定义在另一类中的类被称为内部类,另一个相对于内部类的类叫做外部类。内部类允许编程人员将相关的类组织起来,控制内部类对其他外部类的可见性。
内部类可以分为普通内部类和静态内部类两种,示例图如下:
[img]http://dl.iteye.com/upload/attachment/0084/0286/42c0743a-e7c0-3f4d-92aa-aa953fad1588.jpg[/img]
普通内部类代码示例如下:
静态内部类,又叫嵌套类,代码示例如下:
普通内部类和静态内部类的区别:
[img]http://dl.iteye.com/upload/attachment/0084/0293/d68cff53-5a20-34ae-a6cc-1b8198d5ac8f.jpg[/img]
那么,为什么要使用内部类呢?
我们都知道,JAVA是单继承的,但是可以通过内部类的方式,由内部类继承另一个父类,外部类再继承另一个类,这样就实现类累的多继承。如下所示:
内部类可以分为普通内部类和静态内部类两种,示例图如下:
[img]http://dl.iteye.com/upload/attachment/0084/0286/42c0743a-e7c0-3f4d-92aa-aa953fad1588.jpg[/img]
普通内部类代码示例如下:
public CommonInnerClass{
private static int iNumber;
private String str;
public class InnerCalss{
private long innerVal;
//setter getter
...
}
//setter getter
...
}
静态内部类,又叫嵌套类,代码示例如下:
public StaticInnerClass{
private static int iNumber;
private String str;
public static class InnerCalss{
private long innerVal;
//setter getter
...
}
//setter getter
...
}
普通内部类和静态内部类的区别:
[img]http://dl.iteye.com/upload/attachment/0084/0293/d68cff53-5a20-34ae-a6cc-1b8198d5ac8f.jpg[/img]
那么,为什么要使用内部类呢?
我们都知道,JAVA是单继承的,但是可以通过内部类的方式,由内部类继承另一个父类,外部类再继承另一个类,这样就实现类累的多继承。如下所示:
class ParentClassA{
public void methodA(){
...
}
}
class ParentClassB{
public void methodB(){
...
}
}
public class CommonInnerClass extends ParentClassA{
public class InnerClass extends ParentClassB{
...
}
}