Java内部类

目录

 

一:Java内部类详解

二:匿名内部类


一:Java内部类详解

成员内部类:声明一个新 class 类,作为该类的一个成员 
局部内部类:在一个方法内部,重新声明一个类
静态内部类:static 修饰内部类
匿名内部类:java提高篇-----详解匿名内部类 :https://www.cnblogs.com/chenssy/p/3390871.html#4232300 
构造代码块     —— 依托于构造方法的执行 
静态代码块    ——    依托于类的加载

核心作用: 
接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整

二:匿名内部类

1.不能在初始化类括号里面传递参数
2.方法体内使用参数限制:
            匿名内部类,并且希望它使用一个其外部定义的参数:  
            简单理解就是,拷贝引用,为了避免引用值发生改变,例如被外部类的方法修改等,而导致内部类得到的值不一致,于是用final来让该引用不可改变。

例子:

public abstract class Bird {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    public abstract int fly();
}

public class Test {
    
    public void test(Bird bird){
        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");
    }
    
    public static void main(String[] args) {
        Test test = new Test();
        test.test(new Bird() {
            
            public int fly() {
                return 10000;
            }
            
            public String getName() {
                return "大雁";
            }
        });
    }
}

public class WildGoose extends Bird{
    public int fly() {
        return 10000;
    }
    
    public String getName() {
        return "大雁";
    }
}

WildGoose wildGoose = new WildGoose();
test.test(wildGoose);

 

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值