子类重写父类的接口,为什么子类这个接口的访问权限可以和父类不一致
时间: 2024-04-25 14:26:38 浏览: 21
这是因为Java中的接口默认为public。当子类实现接口时,子类可以选择将接口方法声明为public、protected或default访问权限,但不能声明为private。这是因为接口中的方法默认为public,所以如果子类将接口方法声明为private,那么这个方法在接口中就无法被访问,也就无法被子类实现。因此,Java规定子类实现接口的方法不能低于接口方法的访问权限,但可以高于接口方法的访问权限。
相关问题
C++ 子类重写父类的接口,为什么子类这个接口的访问权限可以和父类不一致
在C++中,子类重写父类的接口时,子类可以选择将接口方法的访问权限设置为与父类不一致。这是因为C++中的虚函数(即接口方法)的访问权限是相对于类而言的,而不是相对于父类或子类而言的。因此,子类可以通过继承和重写父类的虚函数,来实现不同的访问权限控制。
在C++中,虚函数可以被声明为public、protected或private。如果子类想要重写一个父类的虚函数,但是将其访问权限设置为比父类更严格的权限,比如将其设置为private,那么子类就无法通过该虚函数来调用父类的方法,这样会破坏了虚函数的多态特性。因此,一般来说,子类在重写父类的虚函数时,应该将其访问权限设置为与父类相同或更宽松的权限,这样才能保证虚函数的多态特性。
子类和父类不在一个包中 重写父类权限为protected的方法时候权限可以写什么
在子类中重写父类的 protected 方法时,可以将重写后的方法权限设置为 protected 或 public。因为在不同包中,子类只能访问父类的 protected 方法,而不能访问父类的 private 或 default 方法。因此,在子类中重写父类的 protected 方法时,可以将权限设置为 protected 或 public,以便其他类也可以访问该方法。但是,重写后的方法权限不能设置为 private 或 default。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)