如果父类不是公共类子类在别的包中能继承到吗
时间: 2024-04-19 21:26:20 浏览: 19
如果父类不是公共类,则子类在不同的包中是无法继承到该父类的。非公共类的成员只能在同一个包内或者同一个类内被访问,无法被其他包中的类继承。这是由于访问修饰符的限制所导致的。
如果你想在不同包中继承父类,可以将父类声明为公共类(public class),或者将父类的成员设置为公共(public)或受保护(protected),从而允许其他包中的子类继承并访问这些成员。这样,子类就可以在不同的包中继承父类,并使用和重写父类的公共或受保护成员。
相关问题
如果子类和父类不在同一个包中子类不继承父类的友好成员
是的,你说得对。在Java中,如果子类和父类不在同一个包中,子类无法继承父类的友好成员(默认访问修饰符所修饰的成员)。友好成员只能在同一个包中访问,如果不在同一个包中,则无法访问。因此,子类也无法从父类中继承友好成员。
需要注意的是,子类仍然可以继承父类的公共成员和受保护成员。公共成员可以在任何地方被访问,受保护成员可以在同一包中以及子类中被访问。但是,友好成员只能在同一个包中被访问,所以子类无法继承父类的友好成员。
继承不在一个包能继承默认的方法吗
在Java中,如果两个类不在同一个包中,子类是不能继承父类的默认方法的。因为默认方法是在接口中定义的,而接口中的默认方法默认是使用public访问修饰符修饰的,所以默认方法在接口中被视为公共方法,而公共方法在Java中只能被同一个包中的其他类或者外部类访问。因此,如果子类和父类不在同一个包中,子类是无法访问父类的默认方法的,更别说继承了。如果想要实现跨包继承默认方法,可以将接口中的默认方法改为抽象方法,然后在父类中实现该抽象方法。子类就可以继承父类中的实现了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)