Java访问权限-动力节点
2021-03-12 12:28
标签:dmi str 访问权限 不可 public 重写 ted 定义类 就是 Java类的访问权限 Java类的访问权限有两种: 公共类和非公共类 使用public修饰的类为公共类,没有使用public修饰的类为非公共类。 公共类的应用场景 如果这个类想要在其他包中使用就定义为公共类 非公共类只能在当前包中使用 在定义类的成员时,遵循访问权限最小化的原则。 如果想在任意位置都可以使用,就定义为public公共的。 如果想在当前类和派生类中都可以直接使用,就定义为protected受保护的。 package com.bjpowernode.chapter01.demo02.p1; public class Father { } package com.bjpowernode.chapter01.demo02.p1; */ } package com.bjpowernode.chapter01.demo02.p2; import com.bjpowernode.chapter01.demo02.p1.Father; /** */ } package com.bjpowernode.chapter01.demo02.p3; import com.bjpowernode.chapter01.demo02.p1.Father; */ } Java方法覆盖中的访问权限 Java访问覆盖(重写)的规则: ● 子类方法签名必须和父类方法一致, 方法签名就是方法名与参数列表 ● 子类方法的返回值类型可以和父类方法返回值类型一样, 也可以是父类方法返回值类型的子类型 ● 子类方法的访问权限可以和父类方法访问权限相同,也可以比父类方法访问权限更宽泛(更大) 如果父类方法是public修饰,子类方法只能是public修饰 如果父类方法是protected修饰,子类方法可以protected/public修饰 ● 子类方法的异常不能比父类方法的异常更大 Java访问权限-动力节点 标签:dmi str 访问权限 不可 public 重写 ted 定义类 就是 原文地址:https://www.cnblogs.com/wkcto/p/14083988.html
private int xx = 10; //私有的, 只能在当前类中使用
int yy = 20; //默认的, 可以在当前包中使用
protected int zz = 30; //受保护的, 当前包/派生类中使用
public int oo = 40; //公共的, 任意位置//在当前类中
public void m1() {
System.out.println( xx );
System.out.println( yy );
System.out.println( zz );
System.out.println( oo );
}
/**
public class Test {public static void main(String[] args) {
//创建Father类的对象
Father f = new Father();
//访问f的实例成员
System.out.println(f.xx); //The field(字段/域) Father.xx is not visible(不可见), 没有访问权限
System.out.println(f.yy);
System.out.println(f.zz);
System.out.println(f.oo);
}
只能访问公共成员
public class Test02 {public static void main(String[] args) {
Father f = new Father();
//访问f的成员变量
System.out.println(f.xx); //The field(字段/域) Father.xx is not visible(不可见), 没有访问权限
System.out.println(f.yy);
System.out.println(f.zz);
System.out.println(f.oo);
}
/**
子类继承了父类, 就自动拥有了父类的实例变量与实例方法
Son类从Father类继承了四个实例变量:xx,yy,zz,oo,和一个实例方法: m1()
public class Son extends Father {
//Son类从Father类继承了四个实例变量:xx,yy,zz,oo//子类的实例方法
//因为继承,所有自动拥有, 是否能够直接使用,跟访问权限有关
public void sm() {
System.out.println( xx );
System.out.println( yy );
System.out.println( zz ); //受保护的
System.out.println( oo );
}