一、抽象类(Abstract Class)
-
抽象类定义:
抽象类是指包含抽象方法的类。抽象方法没有具体实现,只有方法声明,并以关键字abstract修饰。 -
抽象类的特点:
- 抽象类不能被实例化,只能被继承。
- 抽象类可以包含具体实现的方法和抽象方法。
- 抽象类可以包含成员变量,包括非final变量。
- 抽象类可以包含构造器。
-
抽象类示例:
java
public abstract class Animal {
private String name;public Animal(String name) {
this.name = name;
}public abstract void eat();
public void sleep() {
System.out.println(name + "正在睡觉");
}
}
二、多态(Polymorphism)
-
多态定义:
多态是指允许不同类的对象对同一消息做出响应的特性。在Java中,多态主要通过继承和接口实现。 -
多态的实现方式:
- 方法的重写(Override)
- 父类引用指向子类对象
- 多态的特点:
- 提高了代码的扩展性和可维护性。
- 可以实现方法的动态绑定。
-
多态示例:
java
class Dog extends Animal {
public Dog(String name) {
super(name);
}@Override
public void eat() {
System.out.println(name + "正在吃骨头");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Dog("旺财");
animal.eat(); // 输出:旺财正在吃骨头
}
}
三、接口(Interface)
-
接口定义:
接口是一种抽象类型,用于定义对象的交互协议。接口只包含方法声明,没有具体实现。 -
接口的特点:
- 接口中只能定义抽象方法和静态常量。
- 接口不能被实例化,但可以被实现(implements)。
- 一个类可以实现多个接口。
- 接口示例:
java
interface Flyable {
void fly();
}
class Bird implements Flyable {
@Override
public void fly() {
System.out.println("鸟儿在飞翔");
}
}
public class Test {
public static void main(String[] args) {
Bird bird = new Bird();
bird.fly(); // 输出:鸟儿在飞翔
}
}