- 在
Java
中,实现抽象的机制有两种:抽象类和接口
- 两者非常相似并且可以相互替换,所以开发者会随意选择,但是有很大不同
抽象是什么?
- 定义:将一类对象的共同特征 总结出来 & 构造成一类事物的过程
- 数据抽象 & 行为抽象
- 只关注对象
有
哪些属性和行为
- 不关注属性和行为的具体细节
- 作用
隐藏
行为功能: 构造出一组行为的抽象描述,但是这组行为可以有任意个可能的具体实现方式
拓展
行为功能:具体实现表现为各种派生类,通过从抽象体派生,可以拓展模块的行为功能
- 实现方式
抽象类
- 定义
- 作用
- 语法特点
- 使用
abstract
关键字
- abstract 不能和 final 共同修饰一个类
- 抽象类方法 = 抽象 / 不抽象
- 不能与 private static final native 并列修饰一个方法
- 含有抽象方法的类一定是抽象类
- 抽象类不一定含有抽象方法
- 抽象类不能被实例化
-
abstract class Animal {
public abstract void cry();
}
class Cat extends Animal {
@Override
public void cry() {
System.out.println("Cat: meow!");
}
}
class Dog extends Animal {
@Override
public void cry() {
System.out.println("Dog: Ho!");
}
}
public class Test {
public static void main(String[] args) {
Animal a1 = new Cat();
Animal a2 = new Dog();
a1.cry();
a2.cry();
}
}
接口