内部类
概念
在一个类中定义另一个类
作用
实现类的多重继承
特性
1、内部类可以使用外部类的属性
2、可以有多个内部类
3、可以将内部类声明为static、fina、abstruct
4、外部类想使用内部类的方法,得先new内部类对象
操作
代码示例
public class InteriorTest {
int a;
int b;
int c;
class A{
int a;
//调用外部类属性方法
public void setInteriorTestVlaue(){
InteriorTest.this.a=10;
InteriorTest.this.b=20;
InteriorTest.this.c=30;
}
//调用内部类变量
public void setAVlaue(){
this.a=100;
}
}
//外部类想使用内部类的方法,得先new内部类对象
public void setInfo(){
new A().setInteriorTestVlaue();
}
//定义外部类方法
void showInteriorTestVlaue(){
System.out.println(this.a);
System.out.println(this.b);
System.out.println(this.c);
}
public static void main(String[] args) {
InteriorTest interiorTest=new InteriorTest();
interiorTest.setInfo();
interiorTest.showInteriorTestVlaue();
}
}
内部类作用:实现类的多重继承
以使用内部类变相的实现类的多重继承,可以同时继承多个类
如下类InteriorTest02想同时获得类A和类B的方法并且重写
//定义两个类:类A和类B
class A{
public void TestA(){
System.out.println("我是类A,我最棒!");
}
}
class B{
public void TestB(){
System.out.println("我是类B,我最棒!");
}
}
//定义外部类InteriorTest02
public class InteriorTest02 {
//定义内部类InnerA继承类A
private class InnerA extends A{
@Override
//重写类A的方法
public void TestA() {
System.out.println("这是重写之后的TestA方法");
}
}
////定义内部类InnerB继承类B
private class InnerB extends B{
//重写类A的方法
@Override
public void TestB() {
System.out.println("这是重写之后的TestB方法");
}
}
//外部类调用内部类方法
public void setA(){
new InnerA().TestA();
}
public void setB(){
new InnerB().TestB();
}
public static void main(String[] args) {
InteriorTest02 interiorTest02=new InteriorTest02();
interiorTest02.setA();
interiorTest02.setB();
}
}