【JAVA】 protected和default访问属性实例
2013-11-03 19:44
267 查看
Java中一共有四种访问属性,public、protected、private和default。
看了这个表各种权限就一目了然了,下面针对protected和default给出实例
首先是基类Person
然后是两个派生类Student和Teacher,不过Student和Person在同一包,Teacher不在同一个包中。
结果自然如上表所述那样。
然后我又实验了继承的继承是否可以访问,根据学生类又派生出本科生类
发现也是可以的,不管子子类是否与父类在一个包内,都可以访问protected,但不在一个包不能访问default属性的。
看了这个表各种权限就一目了然了,下面针对protected和default给出实例
首先是基类Person
package package1; public class Person { public Person(String n,int h) { name=n; height=h; } protected String name; int height; protected String getName() { return name; } int getHeight() { return height; } }
然后是两个派生类Student和Teacher,不过Student和Person在同一包,Teacher不在同一个包中。
package package1; public class Student extends Person{ public Student(String n,int h,String stuid,int clnum) { super(n,h); studentId=stuid; classnumber=clnum; } protected String getStuId() { return studentId; } int getClassnumber() { return classnumber; } protected String studentId; int classnumber; }
package package2; import package1.Person; public class Teacher extends Person{ protected String teachId; String course; public Teacher(String n,int h,String tid,String cou) { super(n,h); teachId=tid; course=cou; } public static void main(String[] args) { // TODO Auto-generated method stub Teacher tea1= new Teacher("Mr.Wang",168,"10001","Math"); tea1.name="Teacher Wang"; //ok! //tea1.height=177 wrong! System.out.println(tea1.getName()); //ok! //tea1.getHeight(); wrong,because default } }
结果自然如上表所述那样。
然后我又实验了继承的继承是否可以访问,根据学生类又派生出本科生类
package package1; public class Undergraduate extends Student { public Undergraduate(String n,int h,String stuid,int clnum,boolean bool) { super(n,h,stuid,clnum); hasGirlorBoyfriend=bool; } private boolean hasGirlorBoyfriend; public static void main(String[] args) { // TODO Auto-generated method stub Undergraduate ungra= new Undergraduate("Lary", 178, "10210001", 3, true); System.out.println(ungra.getClassnumber()); System.out.println(ungra.getHeight()); System.out.println(ungra.getName()); System.out.println(ungra.getStuId()); } }
发现也是可以的,不管子子类是否与父类在一个包内,都可以访问protected,但不在一个包不能访问default属性的。
相关文章推荐
- 2018/01/03JAVA 基础 / 类和对象 / JAVA的四种访问属性修饰符private、protected、default、public介绍
- JAVA的访问控制符private,default,protected,public
- java中的访问控制(private、default、protected、public)
- Java中的访问控制权限public protected default private
- Java之访问权限修饰符 private default protected public
- public、private、protected、default 访问权限的区别以及其它的Java修饰词
- Rhyme/Java中实现封装的方式 访问控制符private、default、protected、public的访问范围
- Java 中4种访问修饰符 public/protected/default(friendly)/private
- Java学习之访问权限Public,Private,Protected,Default的作用域
- java中的访问修饰符--public、protected、default、private
- JAVA的访问控制符private,default,protected,public
- Java的访问权限详解(3+1)public private protected default
- Java的访问权限详解(3+1)public private protected default
- java 中 private public protected default 访问权限的区别
- java类的访问权限问题(public default private protected)
- java:访问权限-protected实例
- Java 类、属性、方法修饰符 public、private、protected、default
- Java中private、protected、public和default修饰符的访问限制
- java中访问控制符public、private、protected、default之间的区别
- Java中的访问控制符的区别:private,default,protected,public