抽象方法的访问修饰符
来源:互联网 发布:淘宝卖保健品填厂家 编辑:程序博客网 时间:2024/06/05 15:31
抽象方法不能使用private修饰符,也不宜使用默认修饰符(default)
(1)如果使用private修饰符
public abstract class SuperClass { /* * The abstract method test in type SuperClass can only set a visibility modifier, * one of public or protected */ private abstract void test();//编译通不过 }
抽象方法必须对子类可见,而private修饰的方法对子类不可见,因此不能使用private修饰符。
(2)如果使用默认修饰符(即不带修饰符)
package cn;public abstract class SuperClass { //采用package修饰符,可以通过编译,但是后患无穷 //该方法,不一定对子类可见,除非子类也在这个包下 abstract void test();}
package com;import cn.SuperClass;public class SubClass extends SuperClass { /* * This class must implement the inherited abstract method SuperClass.test(), * but cannot override it since it is not visible from SubClass. * Either make the type abstract or make the inherited method visible */ @Override void test() {//编译出错 //子类和父类,不在同一个包下,因此不能访问父类的package方法 }}
如果不带修饰符,那么就是包内访问。这种情况下,不一定能保证对子类可见。如果子类和父类不在一个包下面,子类是无法访问(无法覆盖)父类的package方法。因此,abstract方法的访问权限不应该是包内访问。
总结:
对于abstract方法,不能使用private修饰符(编译出错),不能使用package修饰符(编译正常,但是不合理,后患无穷),可以使用public和protected,大多数情况下都是使用public。
阅读全文
0 0
- 抽象方法的访问修饰符
- Java知识(访问修饰符、方法重写和方法重载的区别以及java抽象)
- 类、属性、方法、接口 的 修饰符、访问修饰符
- 修饰符的访问范围记忆方法
- c#多态|抽象类|访问修饰符
- 访问权限修饰符对方法的访问限制
- java中抽象类与接口中方法访问修饰符问题
- java中抽象类与接口中方法访问修饰符问题
- java中抽象类与接口中方法访问修饰符问题
- java中抽象类与接口中方法访问修饰符问题
- java中抽象类与接口中方法访问修饰符问题
- JAVA方法访问修饰和类的成员访问修饰
- 面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符
- abstract(抽象)修饰符,可以修饰类和方法
- 访问修饰符的修饰权限
- C#中方法、类等的默认访问修饰符~
- C#中方法、类等的默认访问修饰符
- C#中方法、类等的默认访问修饰符
- Java将一个list等分成n个list方法
- #COCI#玻璃杯(状压DP)
- jdbc连接oracle数据库
- Merge Sorted Array
- jQuery 修改CSS样式 与 attr方法-获得修改元素属性值
- 抽象方法的访问修饰符
- C++ 模板函数和普通函数匹配规则
- c# 四舍五入、上取整、下取整
- BZOJ 3450 Easy
- HTTP协议
- Ubuntu命令行
- 当今世界最受人们重视的十大经典算法
- js对象
- Android小项目———— 冰炭不投de小计算器