Java类 迁移
类的定义
类的定义由修饰符、类型、类名、是否抽象、是否静态、泛型标识、继承或实现关键字、父类或接口名称等组成
类的类型
类型 | 名称 |
---|---|
class | 类 |
interface | 接口 |
enum | 枚举 |
类的组成
Java类主要由两个部分组成 成员 和 方法
在定义Java类的时候我们一般遵循先定义变量后定义方法的顺序,这样能使代码可读性更高
在定义方法的时候,我们需要把调用者最关心的方法放在最前面,以方便调用者查看。所以方法的定义顺序为先定义公共方法 再定义保护方法 后定义私有方法。当然如果是getter setter方法 他们可以放到最后 虽然他们是公共方法 但是一般不会承载业务逻辑 可以放到最后
方法的访问级别
修饰符 | 任何地方 | 包外子类 | 包内 | 当前类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | × | √ | √ | √ |
无 | × | × | √ | √ |
private | × | × | × | √ |
抽象类定义
抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。
Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。
抽象类的特点
(1)定义中含有抽象方法的类叫做抽象类。
(2)抽象类用abstract关键字来修饰。
(3)抽象类代表一种抽象的对象类型。
(4)抽象类不能实例化。
(5)抽象类中可以有具体方法,可以没有抽象方法。(也就是说一个类中只要有一个方法是抽象方法那么这个类一定是抽象类,反过来,一个抽象类中可以没有抽象方法,可以带有具体
实现的方法),抽象方法用abstract修饰,普通方法不用abstract修饰
(6)一旦一个类中有抽象方法,那么这个类必须也要用abstract来修饰,代表这个类是抽象类,它是不能被实例化的。
抽象方法的特点
(1)只有方法头没有方法体的方法称之为抽象方法。(即只有方法的声明,没有方法的实现)
(2)抽象方法用abstract关键字来修饰。
(3)抽象方法代表一种不确定的操作或行为。(由子类去具体实现)
(4)抽象方法不能被调用。
接口的定义
在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口与抽象类的区别
- 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,不提供具体的实现(jdk1.8允许接口有一个default的实现方法)
- 接口是对事物行为(can-do)的抽象,而抽象类是对事务本质(is-a)的抽象;
- 接口中的变量必须给出初始值,抽象类可以不给;
- 一个类只能继承一个抽象类,但可以实现多个接口;
- 抽象类中可以写非抽象的方法,可以在子类中重复书写它们,这是抽象类的优势;接口中只能有抽象的方法;