protected
java一共有4中权限修饰符,分别是private、default、proteC++ted和public
private和public很好理解,default和protected不太好分清。
protected 包内所有类可见,包外有继承关系的子类可见
default表示默认,不仅本类访问,而且是同包可见。
语言描述可能理解的不够深刻,代码才是最有效的办法
这是我的包结构:
注释的代码代表不能编译,先写一个QWE类用于被继承,里面一个protected修饰的方法一个default修饰的方法
package qwe;
public class QWE {
protected void haha(){
System.out.println("haha");
}
void hehe(){
System.out.println("hehe");
}
}
package qwe;
public class ASD extends QWE{
public static void main(String[] args) {
qwe.ASD asd=new qwe.ASD();
asd.haha();
asd.hehe();
QWE qwe=new QWE();
qwe.haha();
qwe.hehe();
}
public void aa(){
haha();
hehe();
}
}
从上面代码可以看到,同包下继承,两者都可以通过子类对象和父类对象调用,子类内也可调用
package asd;
import qwe.QWE;
public class ASD extends QWE {
public static void main(String[] args) {
asd.ASD asd=new asd.ASD();
asd.haha();
// asd.hehe();
QWE qwe=new QWE();
// qwe.haha();
// qwe.hehe();
}
public void ss(){
haha();
}
}
不同包下继承,因为父类方法不是public所以都不能调用,子类对象可以调用protected修饰的方法
但是:
import asd.ASD;
public class Main {
public static void main(String[] args) {
ASD asd=new ASD();
// asd.haha();
}
}
子类对象可以在子类内调用继承来的protected方法,但是不能在其它类内调用该方法
也就是说protected修饰的方法可以在子类内部调用却不能在子类外部调用
相关阅读
本文作者:合肥工业大学 管理学院 钱洋 email:[email protected] 内容可能有不到之处,欢迎交流。 英文语料预处理 针对英语语料预处
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK,那么到底什么是OpenJDK,它与S
在javascript中 setInterval()、clearInterval()、cle
setInterval()是一种定时器,它按照指定的设置时间(以毫秒计)来调用函数的方法。clearInterval()是结束定时器的循环调用函数。除非调
JavaScript窗体Window.ShowModalDialog使用详解
Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对
java 定时任务之一 @Scheduled注解(第一种方法)
使用spring @Scheduled注解执行定时任务: 运行!!! 关于Cron表达式(转载) 表达式网站生成: http://cron.qqe2.com/ 直接