使用单独类的方法不被视为抽象



当从另一个类调用一个方法时,它被认为是抽象的吗?因为当main方法创建Dog对象并使用方法animalSound时,用户看不到正在执行的操作。这算不算抽象?

狗.java

public class Dog {
public void animalSound() {
System.out.println("Woof");
}
}

主.java

public class Main {
public static void main() {
Dog d = new Dog();
d.animalSound();
}
}

当从另一个类调用一个方法时,它被认为是抽象的吗?

抽象(在计算机科学中(意味着隐藏细节。

因此,您实际上是在询问方法调用是否在抽象(隐藏(方法的详细信息。

严格的答案是否定的。 方法执行的操作的详细信息由方法声明隐藏,而不是由方法调用隐藏。

然而,在更一般的意义上,方法确实是一种抽象形式。


顺便说一句,一位评论员是这样说的:

抽象在使用继承时会发挥作用。

这是不正确的。

  1. 数据抽象不需要继承。 事实上,(静态(面向对象语言的经典定义是它支持"继承+数据抽象(或封装(+多态性"。 继承和数据抽象是正交属性。

  2. 有一些编程语言示例支持无继承的数据抽象。 例如,CLU 和(取决于您的严格程度1(Ada83。

  3. 数据抽象并不是唯一的抽象类型。 其他种类包括:

    • 程序抽象;即过程、函数、子例程等。 在程序抽象中,我们只隐藏了算法细节。

    • 模块化,隐藏应用程序某些部分的更大规模细节。

有关更多详细信息,请参阅维基百科关于抽象的页面。


1 - 在 Ada83 中,子类型无法添加新字段或覆盖现有方法("操作"(。 请参阅 http://goanna.cs.rmit.edu.au/dale/ada/aln/14_OO.html

最新更新