首页 > 代码库 > java软件包的访问权限和继承
java软件包的访问权限和继承
public:公共权限,可以修饰类、成员变量和成员函数,不论是否在同一个包中均可自由访问
package wang;//当一个类的权限为public时,类名必须和文件名相同public class Person{ public String name; //public权限 public void introduce(){ System.out.println(name); }}
package chavez;class Test{ public static void main(String args[]){ //不在同一个包中时要写全名 wang.Person p = new wang.Person(); }}
在不同的包当中,如果一个类不是public权限,在另外一个包中的类就无法对其进行访问,类的成员变量和成员函数同理
包的导入:
当两个类不在同一个包中,生成一个类的引用时需要使用全名,为方便书写,可导入这个类
package chavez;import wang.*; //导入wang文件夹下的所有类class Test{ public static void main(String args[]){ Person p = new Person(); p.name = "zhangsan"; p.introduce(); }}
private:私有权限,修饰成员变量和成员函数,可以修饰内部类
package wang;class Person{ private String name; //private权限 private void introduce(){ System.out.println(name); }}
成员变量和成员函数用private修饰后只能在当前类中进行访问,不论是否在同一个包中。继承关系中,子类无法访问父类中private权限的成员变量和成员函数。
default:包级别访问权限,可以修饰类、成员变量和成员函数
两个类在同一个包当中,对类的成员变量和成员函数可以任意访问。如果子类和父类不在同一个包当中,子类可以继承父类当中的default权限的成员变量和成员函数,但由于权限不够无法使用。
package wang;class Person{ String name; //default权限,不写权限修饰符 void introduce(){ System.out.println(name); }}
//与Person在同一个包中package wang;class Test{ public static void main(String args[]){ Person p = new Person(); p.name = "zhangsan"; p.introduce(); }}
protected:受保护权限,拥有和default一样的功能,但该权限只能修饰成员变量和成员函数。当子类和父类不在同一个包中时,子类可以继承并使用父类中protected权限的成员变量和成员函数(跨包继承)。
package wang;public class Person{ protected String name;}
package chavez;import wang.Person;class Student extends Person{ void introduce(){ System.out.println("我的名字叫"+name); }}
public权限和protected权限的区别:
一个类中的public权限的成员变量和成员函数,任何类都可以调用
一个类中的protected权限的成员变量和成员函数,只有该类所属的包之外的、该类的子类才可以继承使用
权限大小从大到小排列:public > protected > default > private
java软件包的访问权限和继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。