Thinking in Java (4)

第九章 接口

第十章 内部类

抽象类和接口

抽象类描述“是不是”——从属  (public) abstract class    单继承

//抽象类
public abstract class Example {
    //实例变量
    int var1;
    //静态变量
    static int var2;
    //构造方法
    public Example(){}
    //抽象方法
    abstract void method1();
    //实例方法
    void method2(){}
    //静态方法
    static void method3(){}

    public static void main(String[] args) {
        //'Example' is abstract; cannot be instantiated
        //Example example = new Example();
    }
}

接口描述“有没有”——特征  (public) interface    多重继承

//接口
public interface Example {
    //默认static final, 需初始化
    int var1 = 0;
    //默认abstract
    void method1();
    //默认方法, 有方法体 -- jdk1.8
    default void method2(){}
    // 私有方法 -- java 9 【新增】
    private void method3(){}
}

内部类

普通内部类

普通内部类对象依赖外部类对象而存在,即在创建一个普通内部类对象时首先需要创建其外部类对象;内部类对象可以访问外部类对象中所有访问权限的字段,同时,外部类对象也可以通过内部类的对象引用来访问内部类中定义的所有访问权限的字段

静态内部类

静态内部类是作为一个外部类的静态成员而存在,创建一个类的静态内部类对象不需要依赖其外部类对象;静态内部类不能访问外部类的非静态成员,而外部类依然可以访问静态内部类对象的所有访问权限的成员

匿名内部类

匿名内部类中可以使用外部类的属性,但是外部类却不能使用匿名内部类中定义的属性

局部内部类

局部内部类里面可以访问外部类对象的所有访问权限的字段,而外部类却不能访问局部内部类中定义的字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值