尚学堂1901期Java和架构全套下载(源码+课件)

package verify;

public class SameFieldInGeneric extends SuperClass{
    public String field = "subClassField";
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SameFieldInGeneric subObject  = new SameFieldInGeneric();
        //subClassField
        System.out.println("最初始的属性 = " + subObject.field);    
        
        SuperClass supObject = subObject;
        //superClassField
        System.out.println("转换为父类后的属性 = " + supObject.field);    
        
        SameFieldInGeneric subObject2 = (SameFieldInGeneric) supObject;
        //subClassField
        System.out.println("再次转换回子类后的属性 = " + subObject2.field);    
        
        System.out.println();
        /*    实际情况中,属性不太可能是public的
            基本是通过get方法获取的,此时重名必须得重写get方法
            这样结果就都是子类的真实属性了subClassField
        */
        System.out.println("方法获取的:最初始的属性为 " + subObject.getField());    
        System.out.println("方法获取的:转换为父类后的属性为 " + supObject.getField());    
        System.out.println("方法获取的:再次转换回子类后的属性为" + supObject.getField());
    }
    
    public String getField() {
        return field;
    }
    
}

class SuperClass {
    public String field = "superClassField";
    public String getField() {
        return field;
    }
}

package classAndGeneric;
/*
 * 静态方法会被子类继承
 * 但不存在动态绑定,访问的是定义的对象变量所在的类或类本身的方法
 */
public class StaticMethodInherit extends SuperClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        staticMethod();            // sub static method.....
        
        StaticMethodInherit sub = new StaticMethodInherit();
        // 父类的被隐藏,和通过类直接访问效果相同
        sub.staticMethod();        // sub static method.....  
        SuperClass sup = sub;
        // 父类的被激活
        sup.staticMethod();        // super static method...... 
    }
    
    public static void staticMethod() {
        System.out.println("sub static method.....");
    }

}

class SuperClass {
    public static void staticMethod() {
        System.out.println("super static method......");
    }
}

猜你喜欢

转载自blog.csdn.net/aa1234567546654/article/details/89489604