1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java继承静态方法 是否在Java中继承了静态方法?

java继承静态方法 是否在Java中继承了静态方法?

时间:2022-11-16 13:32:52

相关推荐

java继承静态方法 是否在Java中继承了静态方法?

I was reading A Programmer’s Guide to

Java™ SCJP Certification by Khalid Mughal.

In the Inheritance chapter, it explains that

Inheritance of members is closely tied to their declared

accessibility. If a superclass member is accessible by its simple name

in the subclass (without the use of any extra syntax like super), that

member is considered inherited

It also mentions that static methods are not inherited. But the code below is perfectlly fine:

class A

{

public static void display()

{

System.out.println("Inside static method of superclass");

}

}

class B extends A

{

public void show()

{

// This works - accessing display() by its simple name -

// meaning it is inherited according to the book.

display();

}

}

How am I able to directly use display() in class B? Even more, B.display() also works.

Does the book's explanation only apply to instance methods?

解决方案

All methods that are accessible are inherited by subclasses.

From the Sun Java Tutorials:

A subclass inherits all of the public and protected members of its parent, no matter what package the subclass is in. If the subclass is in the same package as its parent, it also inherits the package-private members of the parent. You can use the inherited members as is, replace them, hide them, or supplement them with new members

The only difference with inherited static (class) methods and inherited non-static (instance) methods is that when you write a new static method with the same signature, the old static method is just hidden, not overridden.

From the page on the difference between overriding and hiding.

The distinction between hiding and overriding has important implications. The version of the overridden method that gets invoked is the one in the subclass. The version of the hidden method that gets invoked depends on whether it is invoked from the superclass or the subclass

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。