码迷,mamicode.com
首页 > 编程语言 > 详细

【java的继承extends】

时间:2015-05-22 19:26:47      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:public   java   技术   

java中 “继承”是面向对象软 件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方 法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。


继承的基本概念

1.继承是面向对象的三大特性之一。(封装,继承,多态)

2.被继承的类是父类,继承父类的类是子类

3.继承可以使一个对象直接使用另以对象的属性和方法

4.继承可实现代码重用



继承的限制

1.java只能显示单继承,即一个类只能有一个父类

2.允许多重继承

3.继承只能继承非私有的属性和方法

4.构造方法不能被继承


来看例子


情况一:


  1. public class Mystring {  

  2.       

  3.     public static void main(String[] args) {  

  4.           

  5.           student ok=new student("xiaoming");  

  6.               ok.say();//say方法也被继承过来  

  7.     }  

  8.   

  9. }  

  10. class person  

  11. {  

  12.     public String name;   

  13.     //构造方法  

  14.     public person()  

  15.     {  

  16.        System.out.println("我是person构造方法");  

  17.     }  

  18.     public void say()  

  19.     {  

  20.         System.out.println("名字是 :"+name);  

  21.     }  

  22. }  

  23. class student extends person//继承person类  

  24. {  

  25.     public student(String name)  

  26.     {  

  27.           this.name=name;//person的name属性被继承过来  

  28.     }     

  29. }  

复制代码




输出结果为:

技术分享 

得出结论1:子类实例化时,首先会调用父类的构造方法,之后自己在进行实例化操作


情况二:


技术分享


此时引入关键字super。super表示父类的引用,可以调用父类的方法和属性。如调用父类的say方法,可以用。super.say()调用。


得出结论二:父类无默认构造函数时,子类必须显示的调用父类的构造方法



继承方法的重写


   概念:在java中,子类能继承父类中的方法,但有时子类并不想原封不动的使用父类的方法,而想做一些修改,这就需要采用方法的重写,又称方法覆盖。


方法重写需要注意的特性

1.发生重写的父类和子类的两个方法的返回值,函数名,参数列表必须完全一致

2.子类抛出的异常不能超过父类相应方法抛出的异常

3.子类方法的访问级别不能低于父类相应方法的访问级别(如父类方法时protected,子类重写就要用protected或public)


如:

  1. public class Mystring {  

  2.       

  3.     public static void main(String[] args) {  

  4.           

  5.           student ok=new student("xiaoming");  

  6.           ok.say();//say方法也被继承过来  

  7.     }  

  8.   

  9. }  

  10. class person  

  11. {  

  12.     public String name;   

  13.      

  14.     public void say()  

  15.     {  

  16.         System.out.println("名字是 :"+name);  

  17.     }  

  18. }  

  19. class student extends person//继承person类  

  20. {  

  21.     public student(String name)  

  22.     {  

  23.         this.name=name;//person的name属性被继承过来  

  24.     }     

  25.       

  26.     //say方法重写  

  27.     public void say()  

  28.     {  

  29.         System.out.println("重写过得方法       名字是 :"+name);  

  30.       

  31.     }  

  32. }  

复制代码

技术分享


【java的继承extends】

标签:public   java   技术   

原文地址:http://wufanxin.blog.51cto.com/7318130/1653931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!