【说明】部分内容来源于网络,如有冲突,请联系作者删除。
一、面向对象编程(OOP)
2.1 对象和类的关系
2.2 面向对象的特征
2.2.1 封装
2.2.2 继承
2.2.3 多态
3、抽象
-
使用abstract关键字修饰的类或者方法
-
定义抽象类(使用abstract)
// 1、定义抽象方法的类必须是抽象类
// 2、抽象类是不能被实例化的。
abstract class UFO {
private String sharp; // 飞碟形装
private String color; // 颜色
public abstract void fly(); // 代表该方法只能给子类实现(abstract标记)
public abstract void driven(); // UFO是什么驱动的方法
}
3.1 案例演示
【1】新增一个空项目。空项目不勾选 “添加示例代码”
【2】创建UFO类
【3】编写以上的UFO类的代码和属性、以及抽象方法。
【4】快捷实现getter和setter:鼠标放到指定的属性名称上面,按住 alt + insert
【5】会弹出提示快速生成的代码,选择Getter和Setter
【6】如果方法是抽象的,类不是抽象的,则会报异常
【7】再定义一个普通的方法,用来比较
【8】新建一个类,例如MyUFO,继承自 UFO。由于抽象方法需要重写,所以不重写会报错。
【9】点击左边灯泡,根据提示自动生成重写的方法。其中,@override代表方法是重写的方法。在重写的方法里面搞两个输出。
【10】新建一个抽象类,如果抽象类继承自抽象类,则不需要重写抽象方法。
【11】新建一个运行的类,然后走一下。
4、接口
4.1 直接上代码进行演示
【1】新建一个包,任意命名,此处叫 interfaces
【2】新建一个测试接口:ITest,提供若干个接口方法。其中,接口的方法,都是公开、抽象的。所以public和abstract可以省略不写。
【3】新建一个实现类,实现了通过implements来关联要实现的接口。由于是抽象方法,所以实现类里面需要重写。重写标记 @override 可写可不写。接口必须全部被重写。
【4】在JDK8以及以上版本环境,接口里面允许有具体的方法,但是前面必须使用default 关键字。
【5】新增一个启动类,用于测试以上效果,如图。
【6】接口和接口之间也可以继承
一般语法: 具体类extends 抽象类 implements 接口1,接口2,接口3……
五、 常见的快捷键
sout + enter // 生成快捷输出语句
变量/常量/字面值.sout // 直接生成输出变量,常量,字面值的语句
变量.var // 自动补全变量名称和对应类型
psvm // 生成main方法
数组/集合.for // 生成foreach循环语句
数组/集合.fori // 生成for循环语句
字面值[数字].fori // 生成for循环语句
对象.cast // 生成强转语句
变量/表达式.return // 生成return语句
表达式.if // 生成if条件语句