栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中权限修饰符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中权限修饰符

Java中权限修饰符

public:公共权限,修饰属性、方法、类,可以被任意类访问
private:私有权限,修饰属性、方法,只能在本类中访问
protected:受保护的权限,修饰属性、方法

父类的protected修饰的成员是在同一包中可见的,并且对子类也可见,详细的见以下代码
Father类

package com.zretc.p2;

public class Father {
	protected int  num;
	protected void method1() {
		System.out.println("编译通过");
	}
}

同包非子类

package com.zretc.p2;

public class Test {
	public static void main(String[] args) {
		Father father1 = new Father();
		father1.method1();//编译通过
		father1.num = 10;//编译通过
	
	}
}

同包子类

package com.zretc.p2;
public class Son1 extends Father{
	public static void main(String[] args) {
		Father father1 = new Father();
		father1.method1();//编译通过
		father1.num = 10;//编译通过
		
		Son1 son1 = new Son1();
		son1.num = 10;//编译通过
		son1.method1();//编译通过
	}

}

若这个子类与父类不在同一个包中,那么这个子类只能访问从父类继承过来的protected成员,但是不能访问父类本身实例的protected方法。这里其实是最不好理解的,可以通过下列代码来理解
异包子类

package com.zretc.p22;
import com.zretc.p2.Father;

public class Son2 extends Father{
	public static void main(String[] args) {
		Father father2 = new Father();
		father2.method1();//编译错误
		father2.num = 10;//编译错误
		
		Son2 son2 = new Son2();
		son2.method1();//编译通过
		son2.num = 10;//编译通过
}
}

这里的father对象即为基类(Father类)的实例,因此不能直接访问它自身的method1()方法。而son2是其子类的对象,因此可以访问从基类Father类继承过来的method1()方法了。

default:同包权限,修饰类、属性、方法,只能被同包的类访问
【注】只有public和default可以修饰类,protected和private只能修饰属性和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号