我是靠谱客的博主 感性鼠标,最近开发中收集的这篇文章主要介绍【基础】protected 权限,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在实际开发中,一般对于类权限使用public,对于方法权限使用最多的是public,private,

对于属性权限使用最多的是private,或者默认权限。使用以上权限,对于代码访问

一般足够使用。很少使用protected权限

(注意: 关于protected权限只能使用于方法或属性上,在类上是没有这个权限的,不能用于类上)

有些特殊情况下我们需要使用protected,比如,父类提供了一个方法,不想让其他包中的

对象访问,只想让自己所在包中的类访问,这个时候如果我们用public和private是满足不了

这种需求的,这个时候protected权限就派上了用场。

eg:

在test包中有两个类,一个Parent,一个Children

Parent:

 

package com.lanhuigu.java.test;

public class Parent {
	// protected在本包中可以访问,如果跨包就不能访问
	protected String song() {
		return "唱歌";
	}
}

Children:

 

 

package com.lanhuigu.java.test;

public class Children extends Parent{
	// 子类重写父类的方法,扩大访问权限
	public String song() {
		return "唱歌";
	}
	
	public String code() {
		return "编码";
	}
}

Test:

 

 

package com.lanhuigu.java.util;

import com.lanhuigu.java.test.Children;
import com.lanhuigu.java.test.Parent;

public class TestAccess {
	public static void main(String[] args) {
		Parent parent = new Parent();
		/*
		 * Parent中的song方法是protected权限,其他包中没有访问权限
		 */
		//System.out.println(parent.song());
		
		System.out.println("=================");
		
		Children children = new Children();
		System.out.println(children.code());
		/*
		 * 子类通过重写父类的song方法,将父类的访问权限protected提升至public的高度,
		 * 供其他包中的类调用,如果子类不重写父类的song方法,提高访问权限,其他包中的类通过
		 * 子类对象也是无法访问song方法的,因为没有提高访问权限之前song方法是protected权限的。
		 */
		System.out.println(children.song());
	}
}

 

程序分析:

在test包中,Parent类song方法访问权限为protected权限,子类Children继承父类,

重写父类Parent的song方法,将访问权限提高到public程度,在TestAccess中,

通过父类对象Parent不能访问父类protected权限的song方法,因为TestAccess类在util包中,

与Parent不在同一包中,所以不能访问;但是可以通过子类Children对象访问song方法,因为

子类重写了父类的song方法,提升了访问权限。

 

为什么protected权限叫做'友好'权限?

就好比一个家族中某个人升官发财,有好处一般都是给这个家族中共享,

一般不会把好处给了外人,但是世间还是有真情的,家族中某些人将这些好处从protected

保护的状态提升到public公开的状态,这样其他家族都能共享了,这就是友好的含义。

 

在java中,比如A包就一个家族,在A包中protected的东西大家都能用,

但是对于另外一个包B就是外人,直接看不到A中的protected的东西。

如果B包想用A包的protected东西,必然有A包中某个类将protected的东西

提升到public的程度,B包才能使用。

 

最后

以上就是感性鼠标为你收集整理的【基础】protected 权限的全部内容,希望文章能够帮你解决【基础】protected 权限所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部