启航-后端-Java-总结4

启航-后端-Java-总结4

本周因有三门考试,总结内容较少。

Ⅰ.特殊类

一、抽象类

(一)抽象方法

使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。

(二)抽象类

包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

(三)5个要点
  • 有抽象方法的类只能定义成抽象类。
  • 抽象类不能实例化,即不能用new来实例化抽象类。
  • 抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
  • 抽象类只能用来被继承。
  • 抽象方法必须被子类实现。

二、接口

(一)定义
  • 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能.….”的思想。
  • 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。
  • 接口和实现类不是父子关系,是实现规则的关系。
(二)6个要点
  • 子类通过implements来实现接口中的规范。
  • 接口不能创建实例,但是可用于声明引用变量类型。
  • 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
  • 接口可以多继承。
  • JDK1.8(不含8)之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。
  • JDK1.8(含8)后,接口中包含普通的静态方法、默认方法。
(三)JDK新特性
1.默认方法

默认方法和抽象方法的区别是抽象方法必须要被实现,默认方法不是。作为替代方式,接口可以提供默认方法的实现,所有这个接口的实现类都会通过继承得到这个方法。

2.静态方法

JAVA8以后,我们也可以在接口中直接定义静态方法的实现。这个静态方法直接从属于接口(接口也是类,一种特殊的类),可以通过接口名调用。

三、分类

(一)成员内部类
1.非静态内部类
  1. 非静态内部类对象必须寄存在一个外部类对象里。因此,如果有一个非静态内部类对象那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象。
  2. 非静态内部类可以直接访问外部类的成员,但是外部类不能直接访问非静态内部类成员。
  3. 非静态内部类不能有静态方法、静态属性和静态初始化块。
  4. 外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例。
2.静态内部类
  1. 静态内部类看做外部类的一个静态成员。
  2. 当一个静态内部类对象存在,并不一定存在对应的外部类对象。因此,静态内部类的实例方法不能直接访问外部类的实例方法。
(二)匿名内部类
  1. 适合那种只需要使用一次的类。比如:键盘监听操作等等。
  2. 匿名内部类没有访问修饰符。
  3. 匿名内部类没有构造方法。因为它连名字都没有那又何来构造方法?
(三)局部内部类
  1. 定义在方法内部的,作用域只限于本方法,称为局部内部类。
  2. 作用域仅限于所在方法。

Ⅱ.总结

本周因为考试原因总结并不是很详细,有一部分还是上周的存货,老旗子:放假补(千疮百孔的放假.java)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值