test测试类在p2包内,即便继承Father1类Son1和Son2也无法调用f()方法(Test t = new Test(); t.f();可以调用),因为在p2包内继承了Father1,虽然不在同一包内,但是现在有了子父类的关系,即Test类与Son1、Son2形成了兄弟关系,由于 protected受访问保护规则是很微妙的,虽然protected域对所有子类
// 示例一packagep1;publicclassFather1{protectedvoidf(){}// 父类Father1中的protected方法}packagep1;publicclassSon1extendsFather1{}packagep2;publicclassSon2extendsFather1{}packagep1;publicclassTest{publicstaticvoidmain(String[]args){Son1 son1=newSon1();son1.f();// Compile OK ---(1)son1.cl...
// 覆写一:正确示范@Overridepublicvoidfun(){System.out.println("son fun");}// 覆写二:错误示范,访问权限低了@Overrideprivatevoidfun(){// 报错:'fun()' in 'SonDemo' clashes with 'fun()' in 'Father'; attempting to assign weaker access privileges ('private'); was 'public'System.out.pri...
权限修饰符:置于类的成员定义前,用来限定对象对该类成员的访问权限。权限从小到大排列:private、缺省(什么都不写)、protected、public。 权限修饰符可以用来修饰类及类的内部结构:属性、方法、构造器、内部类。 对于class 的权限修饰只可以用 public 和 default(缺省)。 public 类可以在任意地方被访问。 default 类只...
class DieFatherBa { public DieFatherBa() { System.out.println("我恁爹,先有爹再有子,姜还是老的辣!"); } } class SonChildErzi extends DieFatherBa { public SonChildErzi() { System.out.println("nbnb666,先有父后有子,上梁不正下梁歪"); ...
*/publicclassFather{publicStringname="父类 name";protectedStringage="父类 age";Stringmoney="父类 money";// 被 private 修饰的属性无法被子类直接访问到privateStringhobby="父类 hobby";publicStringgetHobbyByPublic(){returnhobby +"_ByPublic"; ...
Father f1 = new Son(); 无法被重写的方法有: static方法:静态方法属于类和类一起加载,不属于实例,无法被重写 final 常量 private 方法 五、instanceof 判断两个类是否相似,是否可以比较转换(类型转换),相似返回true,不相似返回false,语法如下: 注意:有关系的两个类才能进行比较 ...
new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while 2.2 第一个关键字class 表示定义一个类。创建一个类。 类:Java项目最基本的组成单元,一个完整的Java项目有可能会有成千上万个类来组成的。 class后面跟随的就...
protected关键字可以把字段和方法的访问权限控制在继承树的内部,一个protected字段和方法可以被其子类,以及子类的子类所访问 另外父类中使用默认修饰符修饰的属性和方法,在不同包的子类中也不能被继承。3. final类不能被继承 假如我们把上面的父类进行调整,用final关键字修饰Father类,如下图所示:此时...
// 报错:'fun()' in 'SonDemo' clashes with 'fun()' in 'Father'; attempting to assign weaker access privileges ('private'); was 'public' System.out.println("son fun"); } @Override这个是干嘛的?之前没见过啊 这个修饰符用来说明这个方法是覆写方法,不写也可以,系统会自己识别方法是不是覆写...