例子
/** * 子类可以继承父类中static声明的方法或变量,但不能被重写,不能实现多态 * 变量是无法形成多态的 * 当子类定义的成员变量 与父类中定义的成员变量 具有相同名称时,子类中定义的成员变量会覆盖父类的成员变量,而不会继承 * 当子类的方法与父类的方法 具有相同函数签名(方法名、参数个数与类型),子类将会覆盖父类的方法,而不会继承 * */ public class ex { public static void main(String[] args) { Sub sub = new Sub(); System.out.println(sub.str); //子类非静态变量 System.out.println(sub.staticStr); //子类静态变量 sub.staticMethod(); //子类静态方法 sub.method(); //子类非静态方法 System.out.println("=================================="); Father f = new Sub(); System.out.println(f.str); //父类非静态变量 变量是无法形成多态的 System.out.println(f.staticStr); //父类静态变量 变量是无法形成多态的 f.staticMethod(); //父类静态方法 f.method(); //子类非静态方法 子类覆盖父类方法 System.out.println("=================================="); Father f2 = new A(); System.out.println(f2.str); //父类非静态变量 System.out.println(f2.staticStr); //父类静态变量 f2.method(); //父类非静态方法 f2.staticMethod(); //父类静态方法 } } class Father { public String str ="父类非静态变量"; public static String staticStr = "父类静态变量"; public static void staticMethod(){ System.out.println("父类静态方法"); } public void method(){ System.out.println("父类非静态方法"); } } class Sub extends Father{ public String str ="子类非静态变量"; public static String staticStr = "子类静态变量"; public static void staticMethod(){ System.out.println("子类静态方法"); } public void method(){ System.out.println("子类非静态方法"); } } class A extends Father{}