访问控制符的注意点

java中有三个访问控制符和一个缺省的控制符

public:所有类都能够访问

protected:类内部,同一包中的类,子类

private:类内部

缺省:同一包中的类

这里需要注意的是protected中所说的子类,

举例如下

package com;

public class A {
	int a = 1;
}


 

package com;

public class B {

	public static void main(String[] args) {
		A abc = new A();
		System.out.println(abc.a);
	}

}


类A和B在同一包中,A类中的属性a使用了缺省的访问控制符,符合了前面说的缺省的同一包中的类可以访问。

下面继续看例子

package com;

public class A {
	protected int a = 1;
}


 

package com.sunyongxing;

import com.A;

public class B extends A{

	public static void main(String[] args) {
		A abc = new A();
		System.out.println(abc.a);
	}

}


类A的属性a现在用protected修饰,类B和类A不在同一包,但B继承了A,那么根据前面所说,在B类中访问A类中的属性A编译出错,错误信息是属性a不是可见的。从这个例子可以看出protected说的子类可以访问的理解。

将B类改成下面的

package com.sunyongxing;

import com.A;

public class B extends A{

	public static void main(String[] args) {
		B abc = new B();
		System.out.println(abc.a);
	}

}


这样就可以访问了,因此得出结论,protected所说的子类可以访问,是子类可以继承父类中protected中修饰的属性和方法,而不是在子类中通过父类去访问protected属性。

而缺省修饰和private修饰的都不可以被子类所继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值