您的位置:首页 > 编程语言 > Java开发

java27包和访问权限(三)

2016-05-15 08:02 441 查看
访问权限和继承

//如果子类和父类不在同一个包当中,子类可以继承到父类当中的default权限的成员变量和成员函数,但由于权限问题无法使用。

package m;

//如果子类和父类不在同一个包当中,子类可以继承到父类当中的default权限的成员变量和成员函数,但由于权限问题无法使用。

class Person{

String name;

int age;

void eat(){

System.out.println(“eat”);

}

void sleep(){

System.out.println(“sleep”);

}

}

package m;

//import m.Person;

class Student extends Person{

void introduce(){

System.out.println(“我的名字是” + name + “,我的年龄是” + age);

}

}

子类Student继承父类中的成员变量和函数,但如果不在同一包中无法使用。

编译时遇到添加中文注释时出现Gbk无法映射字符的错误,将编码格式改为Ansi解决。

当成员变量和函数为private时,同一包内的子类仍无法使用。

当成员变量和函数为public权限时,跨包的子类变量和函数可以使用。

protected权限作用

拥有和default权限同样的功能,只能修饰成员变量和成员函数。protected权限允许跨包继承成员变量和函数,子类可以使用父类的成员变量和函数

与public的区别:public表明包的外部所有文件都可以使用,而protected只有子类文件可以使用。

package m;

//如果子类和父类不在同一个包当中,子类可以继承到父类当中的default权限的成员变量和成员函数,但由于权限问题无法使用。

//protected权限首先和default功能相同但是只能修饰成员变量和函数,另外当跨包使用时,子类可以使用父类中的变量和函数。

public class Person{

protected String name;

protected int age;

protected void eat(){

System.out.println(“eat”);

}

protected void sleep(){

System.out.println(“sleep”);

}

}

一个类和成员变量和成员函数的权限应该尽可能的小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: