继承类之间的静态方法-Java

问题描述 投票:1回答:1

对于下面的代码:

public class NewClass { 
    public static class superclass { 
        static void print() 
        { 
            System.out.println("print in superclass."); 
        } 
    } 
    public static class subclass extends superclass { 
        static void print() 
        { 
            System.out.println("print in subclass."); 
        } 
    } 

    public static void main(String[] args) 
    { 
        superclass A = new superclass(); 
        superclass B = new subclass(); 
        A.print(); 
        B.print(); 
    } 
}

这里B.print()打印->“超类中的打印。”,但我希望它可以打印“子类中的打印”。因为“ B”是子类的对象。

但是,如果我将static void print()更改为void print(),则它将正确打印“打印在子类中。”]

有人可以帮助您理解吗?

对于以下代码:public class NewClass {public static class superclass {static void print(){System.out.println(“ print in superclass。”); }} ...

java inheritance static
1个回答
0
投票

静态方法不是继承树的一部分。它们仅存在于其类中,而与它们的子类或对象无关。为了减少编译错误,Java允许您像它们属于子类或对象一样调用它们,但不属于它们。

© www.soinside.com 2019 - 2024. All rights reserved.