public class Base { public void method1(){ System.out.println("父类的实例方法"); } public static void method2(){ System.out.println("父类的静态方法"); } public Base method3(){ System.out.println("父类返回值类型为base的方法"); return new Base(); } private void method4(){ System.out.println("父类的私有方法"); } }
public class Sub extends Base{ //private void method1(){ //访问权限不能严于父类 //public static void method1(){ //父类的非静态方法不能被子类覆盖为静态方法 public void method1(){ System.out.println("子类的实例方法"); } //public void method2(){ //父类的静态方法不能被子类覆盖为非静态方法 //子类可以定义与父类同名的静态方法,以便在子类中"隐藏"父类的静态方法 public static void method2(){ System.out.println("子类的静态方法"); } //返回值类型相同或者是其子类 public Sub method3(){ System.out.println("子类返回值为Sub的方法"); return new Sub(); } //父类的私有方法不能被子类覆盖,这样写可以,但是是独立的方法 public void method4(){ System.out.println("子类的私有方法"); } }