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

2016-05-22 20:50 评论 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. }  

当前文章价值0.38元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/1764.html ,谢谢支持!

资源分享

分类:Java基础 标签:
Android组件ViewPager+View实现滑动切换示例 Android组件ViewPager+View实
mysql启动:Failed to start mysql mysql启动:Failed to start my
一天教你熟悉掌握Android Studio开发Android Project 一天教你熟悉掌握Android Stud
浅谈DMS 浅谈DMS

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情