java - Blackberry Screen 类中的 super 构造函数调用

标签 java compiler-construction blackberry

为什么建议在扩展任何 RIM Screen 类时调用 super() 构造函数?据我了解,任何父类(super class)的无参数构造函数都是从任何扩展它的类隐式调用的,我错了吗?

最佳答案

无论你实现与否,super() 都会被默认构造函数调用。

测试很容易。只是几个类:

class ClassA {
    public ClassA() {
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
                Dialog.inform("ClassA()");
            }
        });
    }
}

class ClassB extends ClassA {
    public ClassB() {
        super();
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
                Dialog.inform("ClassB()");
            }
        });
    }
}

class ClassC extends ClassA {

}

class ClassD extends ClassA {
    public ClassD() {
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
                Dialog.inform("ClassD()");
            }
        });
    }
}

和测试应用:

class Scr extends MainScreen {

    protected void makeMenu(Menu menu, int instance) {
        super.makeMenu(menu, instance);

        menu.add(new MenuItem("class A", 0, 0) {
            public void run() {
                ClassA a = new ClassA();
            }
        });
        menu.add(new MenuItem("class B", 0, 0) {
            public void run() {
                ClassB b = new ClassB();
            }
        });
        menu.add(new MenuItem("class C", 0, 0) {
            public void run() {
                ClassC c = new ClassC();
            }
        });
        menu.add(new MenuItem("class D", 0, 0) {
            public void run() {
                ClassD d = new ClassD();
            }
        });
    }
}

所以你看,ClassA() 和 ClassC() 中的对话调用没有区别,ClassB() 和 ClassD() 之间也没有区别。

关于java - Blackberry Screen 类中的 super 构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1790676/

相关文章:

计算机之间的 C 目标文件兼容性

java - 设计 Java 类的最佳方法?

java - 本地图中的键是一个对象时,如何通过该对象的属性进行搜索?

java - 使用 OpenCSV 和 FifoBuffer 逐行读取 CSV

java - 如何向 BlackBerry 应用程序添加简单的表单字段?

java - 黑莓 Eclipse 显示设备文件夹

blackberry - 在 blackberry java 上完成后如何使 gif 消失?

java - 在 google dataproc 集群实例中的 spark-submit 上运行应用程序 jar 文件

c - 如何定义一个模式,该模式将等同于 Flex 中扫描仪无法识别的所有标记?

compiler-construction - self 学习编译器的最佳方法:原理,技术和工具