成员变量的隐藏和方法的重写

2016-05-22 20:50 阅读 6,066 次 评论 0 条

一.摘要

子类继承父类,需要理解的两个概念:成员变量的隐藏和方法的重写

二.成员变量的隐藏

子类声明的成员变量名称和父类的一样(即使数据类型不同),在子类中隐藏了父类中声明的变量,可以使用子类继承的方法操作父类隐藏的成员变量。

  1. class DemoA{  
  2.       String x;//声明的父类的成员变量  
  3.   
  4.       public void setX(String x){  
  5.               this.x=x;  
  6.       }  
  7.       public String getStringX(){  
  8.              return x;  
  9.       }  
  10. }  
  1. class DemoB extends DemoA{  
  2.       int x;//声明的子类的成员变量,名称和父类的double变量一样  
  3.         
  4.       public int getX(){  
  5.             return x;  
  6.       }  
  7. }  

DemoB继承DemoA,在两个类中声明的成员变量名称一样,在子类DemoB隐藏了父类DemoA声明的变量,同时DemoB还可以操作继承父类的setX(double x)方法,它们之间的关系

  1. class Demo{  
  2.       public static void main(String[] args){  
  3.               DemoB demoB=new DemoB();  
  4.           demoB.x=1024;//给子类的成员变量x赋值,这里无法赋值给隐藏父类的x,都可以通过继续的方法操作隐藏的x  
  5.           System.out.println("隐藏父类同一名称的成员变量:"+demoB.getX());  
  6.           demoB.setX("zhaolinit.com");  
  7.               System.out.println("父类方法操作隐藏的成员变量:"+demoB.getStringX());  
  8.       }  
  9. }  

三.方法的重写

重写父类声明的方法,不再执行父类声明的方法(除使用super外)。

  1. class DemoA{  
  2.       public void start(){  
  3.              System.out.println("父类的非静态方法。。。");  
  4.       }  
  5. }  
  1. class DemoB extends DemoA{  
  2.       /** 
  3.        *重写父类start方法,即不再执行父类的start()方法 
  4.        * 
  5.        */  
  6.        @Override  
  7.        public void start(){  
  8.               System.out.println("子类的非静态方法。。。");  
  9.        }  
  10. }  
  1. class Demo{  
  2.       public static void main(String[] args){  
  3.              new DemoB();//最后只执行子类的start()方法,即输出“子类的非静态方法。。。”  
  4.          //使用关键字super,先执行父类的start()方法,再执行子类的start()方法,即输出“父类的非静态方法。。。”和“子类的非静态方法。。。”  
  5.       }  
  6. }  

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/1764.html ,谢谢支持!

资源分享

分类:Java基础 标签:
非常实用的Lenovo G40 Windows8系统进入BIOS收藏手册 非常实用的Lenovo G40 Window
你会错过的接口理解三部曲:定义,设置和实现 你会错过的接口理解三部曲:定义
Eclipse导入另一台电脑下的Android项目style文件出现错误的原因 Eclipse导入另一台电脑下的And
搭建独立网站不得不读的第一篇WordPress安装指南 搭建独立网站不得不读的第一篇W