您所说的就绝对了,当然你的解释是对的,只不过LZ的问题也指出了子类方法覆盖父类方法为什么权限要大于等于父类的? 所以不是说修饰符也要完全一模一样。
- package com.Java1; /*例1,三个同在一个包中的类,此段代码是证明子类方法权限可大于父类方法权限; */
- public class Demo1 {
- public static void main(String[] args) {
- Father f = new Child();
- f.print();
- }
- }
- class Father{
- void print(){
- System.out.println("This is the Father");
- }
- }
- class Child extends Father{
- protected void print(){ //public > protected > 默认(空/无) > private ;
- System.out.println("This is the Child");
- }
- }
复制代码
下面这段代码是补充之前的解释:- package com.Java1;
- public class Demo1 {
- public static void main(String[] args) {
- Father f = new Child();
- f.print();
- }
- }
- //下面为带继承关系的其他包com.Java2中两个类;
- package com.Java2;
- public class Father{
- public void print(){
- System.out.println("This is the Father");
- }
- }
- package com.Java2;
- public class Child extends Father{
- protected void print(){ //protected权限修饰符只允许被同个包com.java2中的类访问也就无法被com.java1中的访问到,即使是用父类引用来调用。
- System.out.println("This is the Child");
- }
- }
复制代码 |