变量的隐藏与方法的覆盖

来源:互联网 发布:宝万网络 编辑:程序博客网 时间:2024/05/21 08:39
package yyyy;//变量隐藏与方法覆盖public class Testc {public static void main(String[] args) {        Person std=new Person();        std.showAddr();        Student p=new Student();        p.showInfo();}}class Person{String id;String name;String address="1000";public void showAddr(){System.out.println(address);}}class Student extends Person{String address="1008";public void showInfo(){showAddr();//当子类调用父类的方法时,处理的是父类的变量 。当子类调用自己所写的方法是处理的是自己的变量,父类的变量将被隐藏System.out.println("Student:"+address);}}//方法的覆写//覆盖(重写)是子类根据需要重新定义继承自父类的方法,使子类具有自己的行为。//子类中的重写的方法应与父类中的被覆盖的方法有完全相同的:方法名称、参数列表、返回值类型。//重写时,修改方法的修饰权限只能从小到大 //             private <default<protected<publicclass My{protected String s="a member of aaa";    protected void test(){    System.out.println(s);    } }public class Testc extends My{public String s="bbbb";public void test(){super.test();System.out.println(s);}public static void main(String[] args){Testc msc=new Testc();System.out.println(msc.s);msc.test();}}class A{    int x=1234;    void show(){        System.out.println("class A:");    }}class B extends A{    double x=567.89;    void show(){        super.show();        System.out.println("calss B:");    }}class C extends B{    char x='c';    void showABC(){        System.out.println(super.x);        System.out.println(x);        super.show();        show();     }    void show(){       System.out.println("class C:");    }}public class Testc{    public static void main(String args[]){        C cc=new C();        cc.showABC();    }}