时间:2023-04-14
标签: #Java #abstract类 #设计模式
可以将一个不包含任何抽象方法的类指明为 abstract,在类中的抽象方法没啥意义但想阻止创建类的对象时,这么做就很有用。
——————
这是有用的,可是这么做的意义是什么呢,在实际开发过程中,能举个例子么?
在实际开发过程中,有时候我们希望一个类仅仅作为其他类的基类,而不允许直接创建该类的实例。这种情况下,将这个类声明为抽象类是有意义的。即使这个抽象类没有抽象方法,它仍然不能被实例化,从而确保了这个类仅作为基类存在。
例如,假设我们有一个系统,其中包含各种类型的员工。我们想创建一个通用的基类 Employee,该类包含一些共享的属性和方法,但我们希望用户只能创建具体类型的员工实例(如 Manager、Developer 等),而不是直接创建 Employee 实例。
下面是一个简单的例子:
public abstract class Employee {
private String name;
private int id;
public Employee(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
// 其他共享的方法
}
public class Manager extends Employee {
public Manager(String name, int id) {
super(name, id);
}
// Manager特有的方法
}
public class Developer extends Employee {
public Developer(String name, int id) {
super(name, id);
}
// Developer特有的方法
}
在这个例子中,我们将 Employee 类声明为抽象类,即使它没有抽象方法。这样一来,用户只能创建 Manager 和 Developer 等具体类型的员工实例,而不能直接创建 Employee 实例。这有助于我们在代码中实现更清晰的层次结构和逻辑。
605

被折叠的 条评论
为什么被折叠?



