Java抽象类和接口使用梳理
抽象类
什么是抽象类
Java中的抽象类是指至少有一个抽象方法的类。抽象方法是一种没有实现的方法,需要在子类中实现。抽象类不能被实例化,只能被子类继承。
抽象类的特点
- 抽象类不能被实例化。
- 抽象类可以包含具体的方法和字段。
- 抽象方法必须在子类中被实现。
- 继承自抽象类的子类必须实现所有抽象方法。
抽象类的示例
public abstract class Shape {
protected int x, y;
public void move(int newX, int newY) {
x = newX;
y = newY;
}
public abstract void draw();
}
这是一个抽象类Shape,包含了一个具体方法move()和一个抽象方法draw()。这个抽象类表示一个形状的抽象概念,但并不关心具体实现的细节,因此draw()方法需要在子类中实现。
接口
什么是接口
Java中的接口是一种类似于抽象类的概念,但是它只包含抽象方法。接口可以看作是一组方法的集合,没有实现的方法定义。接口定义了必须由实现类实现的方法,但接口并不关心这些方法的具体实现。
接口的特点
- 接口定义了一组抽象方法,但不包含方法的实现。
- 接口的所有方法都是public的,可以被任意实现类访问。
- 接口支持多重继承。
接口的示例
public interface Animal {
void eat();
void sleep();
}
public class Cat implements Animal {
public void eat() {
System.out.println("Cat is eating");
}
public void sleep() {
System.out.println("Cat is sleeping");
}
}
public class Dog implements Animal {
public void eat() {
System.out.println("Dog is eating");
}
public void sleep() {
System.out.println("Dog is sleeping");
}
}
上面的例子定义了一个Animal接口,包含eat()和sleep()两个抽象方法。接着Cat和Dog两个类实现了Animal接口,实现了抽象方法,分别表示猫和狗实例。
抽象类和接口的应用场景
- 抽象类一般用于设计类的继承层次结构,它将子类中相同的部分的代码提取出来,放在抽象类中,从而达到代码复用的目的。
- 接口一般用于定义一组需要被实现的方法,比如Java中的集合框架中就大量使用了接口。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java抽象类和接口使用梳理 - Python技术站