4.24 类的成员之一:内部类

在这里插入图片描述
所谓内部类就是在一个类的内部再写一个类就叫内部类

Test3

package day09;

public class Test3 {
    int i;
    public int z;
    private int k;

    class A{
        int i;
        public void setTest3Fileds(){
            Test3.this.i=1;
            Test3.this.z=2;
            Test3.this.k=3;
        }

        public void set(){
            this.i=10;//此方法确定第9行的i
        }
    }

    public void setInfo(){
        //外部类要使用内部类要先new内部类的对象
        new A().setTest3Fileds();
    }

    public void showInfo(){
        System.out.println(this.i);
        System.out.println(this.z);
        System.out.println(this.k);
    }

    public static void main(String[] args) {
        Test3 t=new Test3();
        t.setInfo();
        t.showInfo();
    }
}

运行截图
在这里插入图片描述

在这里插入图片描述
如果内部类是static,就 不能使用外部类的非static成员
内部类可以声明为抽象类(abstract),可以被其他内部类继承

package day09;

public class Test3 {
    int i;
    public int z;
    private int k;

    static class B{

    }
    abstract class C{

    }
    class D extends C{
        
    }

内部类是干什么用的?
答:内部类主要解决java不能多重继承的问题

package day09;

public class Test4 {
    public static void main(String[] args) {
        A a=new A();
        a.testB();
        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(){

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值