java - 什么时候实际使用抽象类?

标签 java

Possible Duplicate:
Why abstract classes necessary?

这是一个程序,它有 1 个没有抽象方法的抽象类。它也工作得很好。 那么抽象类有什么用途,它不允许创建对象,我们可以将其与具体类一起使用来实现抽象类中定义的方法,我们必须扩展抽象类那么为什么不直接在具体类中为什么需要抽象类。 谁能解释一下吗?

程序:

abstract class demo {
public void show() {
System.out.println("not abstract method");
}
// public abstract void display();
}
class demo1 extends demo {
public void display() {
System.out.println("abstract method");
}}

class program {
public static void main(String args[]) {
demo d = new demo1();
d.show();
d.display();
//d.display1();
}
}

最佳答案

有时,知道对象是从某个“父”抽象类扩展而来的类创建的,这非常有用。例如,如果您正在编写包含许多不同类型事件的自定义事件处理程序,您将不知道每个事件将包含什么类型的数据,或者需要什么方法来使用该数据。如果您创建了一个名为“Event”的父抽象类,则可以将该类扩展为 MouseEvent、KeybaordEvent、NetworkEvent 等,并将它们全部传递给事件处理程序方法,例如

public void handleEvent( Event e ){ ... }

然后您可以确定它是什么具体类型的事件对象并相应地处理它。

关于java - 什么时候实际使用抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3228847/

相关文章:

java - Bluepring XML 中的 null 交换的 apache Camel 简单语言测试不起作用

java - 更改android顶部栏的背景颜色

java - for each 循环应用于 char 数组并使用 Character 完成迭代

java - 如何让搜索栏随着计时器的减少而自动滑动/同步到 CountDownTimer

java - MongoDB Java API : put() vs append()

java - 带有 Java 的 Google 自然语言 API - setLanguage

java - Spring MVC 拦截器排除 HTTP 方法上的路径

java - NoClassDefFoundError : com. sforce.soap.enterprise.Connector

java - 通过键jsonarray获取值

java 2D整数数组循环错误输出