Java 使用独立类的方法不被认为是抽象吗

Java 使用独立类的方法不被认为是抽象吗,java,abstraction,Java,Abstraction,当从另一个类调用方法时,它被认为是抽象的吗?因为当main方法创建Dog对象并使用方法animalSound时,用户无法看到正在执行的操作。这算是抽象吗 Dog.java public class Dog { public void animalSound() { System.out.println("Woof"); } } Main.java public class Main { public static void main() {

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

Dog.java

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

public class Main {
    public static void main() {
        Dog d = new Dog();
        d.animalSound();
    }
}
当从另一个类调用方法时,它被认为是抽象的吗

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

因此,您本质上是在询问一个方法调用是否抽象(隐藏)了该方法的细节

严格地说,答案是否定的。方法所做的事情的细节被方法声明所隐藏,而不是被方法调用所隐藏

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


顺便说一下,一位评论员说:

当您使用继承时,抽象就开始发挥作用

这是不对的

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

  • 有一些编程语言支持无继承的数据抽象。例如,CLU和(取决于你的严格程度)Ada83

  • 数据抽象不是唯一的一种抽象。其他种类包括:

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

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

  • 有关更多详细信息,请参阅上的Wikipedia页面



    1-在Ada83中,子类型不能添加新字段或覆盖现有方法(“操作”)。请参见

    欢迎使用堆栈溢出。请注意代码部分的正确格式。此外,在谷歌上很容易找到抽象概念。这个问题应该在至少快速调查之后才提出。关于内容:这只是一个电话。当您使用继承时,抽象就开始发挥作用。