覆写

1,方法的覆写

class A {

         public void print() {

                   System.out.println("Hello World .") ;

         }

}

class B extends A {

         public void print() {      // 方法名称、参数类型及个数、返回值全相同

                   System.out.println("世界,你好!") ;

         }

}

public class Test {

         public static void main(String args[]) {

                   B b = new B() ;

                   b.print() ;    //方法从父类继承而来

         }

}

当一个类之中的方法被覆写之后,如果实例化的是这个子类对象,则调用的方法就是被覆写过的方法。

         但是在进行方法覆写的时候有一个点需要注意:被子类所覆写的方法不能拥有比父类更严格的访问控制权限,对于访问控制权限现在已经接触过三种:private < default(不写)<public

         如果此时父类之中的方法是default权限,那么子类覆写的时候只能是defaultpublic权限,而如果父类的方法是public,那么子类之中方法的访问权限只能是public

当一个子类覆写了一个父类方法的时候,那么在这种情况下,子类要想调用父类的被覆写过的方法,则在方法前要加上“super

2,属性的覆盖

class A {

         public String msg = "Hello World ." ;

}

class B extends A {

         public int msg = 100 ;   //属性同名

         public void print() {

                   System.out.println("msg = " + this.msg);

                   System.out.println("msg = " + super.msg);

         }

}

public class Test {

         public static void main(String args[]) {

                   B b = new B() ;

                   b.print() ;    //方法从父类继承而来

         }


你可能感兴趣的:(java,public,覆写)