java - 创建抽象类或匿名类的实例

标签 java class syntax

这段代码是创建抽象类对象还是匿名类对象? 请告诉我。我在这里有点困惑。

public abstract class AbstractDemo {

    abstract void showMessage();
    abstract int add(int x,int y);

    public int mul(int x,int y){
        return x+y;
    }


    public static void main(String[] args) {
        AbstractDemo ad = new AbstractDemo() {

            @Override
            void showMessage() {
                // TODO Auto-generated method stub

            }

            @Override
            int add(int x, int y) {
                // TODO Auto-generated method stub
                return 0;
            }
        };

        System.out.println(ad.mul(10, 12));
        System.out.println(ad.getClass());
    }

}

最佳答案

您创建一个匿名类来扩展您的抽象类。

在下面的片段中,您正在扩展 AbstractDemo 并为其抽象方法提供实现。

new AbstractDemo() {
    @Override
    void showMessage() {
        // TODO Auto-generated method stub
    }

    @Override
    int add(int x, int y) {
        // TODO Auto-generated method stub
        return 0;
    }
};

关于java - 创建抽象类或匿名类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16785922/

相关文章:

c# - 将 lambda 表达式附加到 C# 程序的 main 方法会产生什么结果?

Java套接字服务器仅显示连接关闭后收到的消息

java - 任何用于将 Java/Android 中的原始图像(如 DNG)转换为 JPG 格式的 API 或代码

java - 从 java WS 生成 WSDL

java - 从Web目录加载图像,显示在ImageView中

javascript - 修改子类实例中的变量

c++ - 使用类的属性制作二维数组,更改值时遇到问题

c++ - 一个类在 C++ 中只包含(默认情况下)私有(private)成员有什么用处?

syntax - `impl TraitX for TraitY` 在 Rust 中意味着什么?

regex - 为什么Visual Studio使用如此奇怪的正则表达式语法