小编Evo*_*igh的帖子

如何在Eclipse中打开控制台窗口?

我不小心关闭了Eclipse中的Console窗口,现在我看不到运行代码的结果了.

你怎么再打开它?

eclipse console

83
推荐指数
6
解决办法
24万
查看次数

多态性与静态方法

我对此代码有疑问

public Car {
    public static void m1(){
        System.out.println("a");
    }
    public void m2(){
        System.out.println("b");
    }
}

class Mini extends Car {
    public static void m1() {
        System.out.println("c");
    }
    public void m2(){
        System.out.println("d");
    }
    public static void main(String args[]) {
        Car c = new Mini();
        c.m1();
        c.m2();       
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道多态不适用于静态方法,只适用于实例方法.并且覆盖不适用于静态方法.

因此我认为这个程序应该打印出来:c,d

因为c调用m1方法,但它是静态的,所以它不能覆盖并且它在类Mini而不是Car中调用方法.

它是否正确?

但是,我的教科书说答案应该是:a,d

这是一个错字吗?因为我现在有点困惑.

请清楚这一点,谢谢.

java polymorphism static

10
推荐指数
1
解决办法
6395
查看次数

具有异常的覆盖方法

所以这是本书的引用:

重写方法不得抛出新的或更广泛的已检查异常,而不是重写方法声明的异常.例如,声明FileNotFoundException的方法不能被声明SQLException,Exception或任何其他非运行时异常的方法覆盖,除非它是FileNotFoundException的子类.

现在这是我的问题,如果超类中的方法抛出异常,那么重写方法是否可以抛出异常呢?

因为我刚刚在Java中尝试了这一点,其中重写方法没有抛出任何异常,并且没有错误.

请解释.

java overriding exception

9
推荐指数
1
解决办法
4158
查看次数

标签 统计

java ×2

console ×1

eclipse ×1

exception ×1

overriding ×1

polymorphism ×1

static ×1