美文网首页
继承成员变量和方法的区别

继承成员变量和方法的区别

作者: 李霖神谷 | 来源:发表于2017-03-22 15:27 被阅读24次

    几乎所有的java书籍或资料多会说当子类继承父类时,子类会继承父类中定义的成员变量和方法,,在访问权限通过的情况下,子类可以直接访问父类的成员变量和方法,这种说法是比较笼统的,因为java成员变量和方法的继承是有区别。

    class Base{
        int count =2;
        public void play(){
            System.out.println(this.count);
        }
    }
    class Derived extends Base{
        int count=20;
        public void play(){
            System.out.println(this.count);
        }
    }
    public class BianDemo{
        public static void main(String[] args) {
            Base b=new Base();
            System.out.println(b.count);
            b.play();
            Derived d=new Derived();
            System.out.println(d.count);
            d.play();
            Base bd=new Derived();
            System.out.println(bd.count);
            bd.play();
        }
    }
    

    创建b,d对象不需要过多解释,创建bd对象,是向上转型,直接通过bd访问count变量输出的将是Base(声明类型)对象count的实例变量,如果通过bd访问play方法,将表现出Derived(运行时类型)对象的行为方式。

    相关文章

      网友评论

          本文标题:继承成员变量和方法的区别

          本文链接:https://www.haomeiwen.com/subject/idponttx.html