内部类

概念

在一个类中定义另一个类

作用

实现类的多重继承

特性

1、内部类可以使用外部类的属性

2、可以有多个内部类

3、可以将内部类声明为static、fina、abstruct

4、外部类想使用内部类的方法,得先new内部类对象

操作

代码示例

  1. public class InteriorTest {
  2. int a;
  3. int b;
  4. int c;
  5. class A{
  6. int a;
  7. //调用外部类属性方法
  8. public void setInteriorTestVlaue(){
  9. InteriorTest.this.a=10;
  10. InteriorTest.this.b=20;
  11. InteriorTest.this.c=30;
  12. }
  13. //调用内部类变量
  14. public void setAVlaue(){
  15. this.a=100;
  16. }
  17. }
  18. //外部类想使用内部类的方法,得先new内部类对象
  19. public void setInfo(){
  20. new A().setInteriorTestVlaue();
  21. }
  22. //定义外部类方法
  23. void showInteriorTestVlaue(){
  24. System.out.println(this.a);
  25. System.out.println(this.b);
  26. System.out.println(this.c);
  27. }
  28. public static void main(String[] args) {
  29. InteriorTest interiorTest=new InteriorTest();
  30. interiorTest.setInfo();
  31. interiorTest.showInteriorTestVlaue();
  32. }
  33. }

内部类作用:实现类的多重继承

以使用内部类变相的实现类的多重继承,可以同时继承多个类

如下类InteriorTest02想同时获得类A和类B的方法并且重写

  1. //定义两个类:类A和类B
  2. class A{
  3. public void TestA(){
  4. System.out.println("我是类A,我最棒!");
  5. }
  6. }
  7. class B{
  8. public void TestB(){
  9. System.out.println("我是类B,我最棒!");
  10. }
  11. }
  12. //定义外部类InteriorTest02
  13. public class InteriorTest02 {
  14. //定义内部类InnerA继承类A
  15. private class InnerA extends A{
  16. @Override
  17. //重写类A的方法
  18. public void TestA() {
  19. System.out.println("这是重写之后的TestA方法");
  20. }
  21. }
  22. ////定义内部类InnerB继承类B
  23. private class InnerB extends B{
  24. //重写类A的方法
  25. @Override
  26. public void TestB() {
  27. System.out.println("这是重写之后的TestB方法");
  28. }
  29. }
  30. //外部类调用内部类方法
  31. public void setA(){
  32. new InnerA().TestA();
  33. }
  34. public void setB(){
  35. new InnerB().TestB();
  36. }
  37. public static void main(String[] args) {
  38. InteriorTest02 interiorTest02=new InteriorTest02();
  39. interiorTest02.setA();
  40. interiorTest02.setB();
  41. }
  42. }