java中继承

来源:互联网 发布:servlet怎么返回json 编辑:程序博客网 时间:2024/06/05 20:43

前两个月写了一篇文章多态,,,,却忘记了继承,以下简要概括什么是继承 

 

1  什么是继承?

子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为

 

 

2  为什么需要继承?什么时候应该继承?

使用继承可以有效实现代码复用,避免重复代码的出现。

当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它两个类继承这个父类。

继承实现了面向对象的原则

 

 

3  如何实现继承?

java语言中,用extends(扩展)关键字来表示一个类继承了另一个类。

在父类中只定义一些通用的属性和方法。

注意只能继承一个父类

子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法。或子类重新定义父类的属性、重写父类的方法可以获得与父类不同的功能。

 

 

4  什么是方法重写?注意方法重写和方法重载区别

如果在子类中定义的一个方法,名称、返回类型及参数列表正好与父类中某个方法的名称、返回类型及参数列表相匹配那么可以说,子类的方法重写了父类的方法。

方法重写在不同类,是实现多态的必要条件。

 

方法重载是在一个类中名称、返回类型及参数列表,一定要与同名的不相同,才能达到重载目的

 

5  super关键字的用法和位置,super关键字调用父类的构造方法,super关键字调用父类的方法?

在子类的构造方法中,通过super关键字调用父类的构造方法。

如果子类中重写了父类的方法,可以通过super关键字调用父类的方法

 以下举例super如何使用


[java] view plain copy
  1. public class Student {  
  2.     int number;  
  3.     String name;  
  4.     public Student() {  
  5.         // TODO Auto-generated constructor stub  
  6.     }  
  7.     public Student(int number, String name) {  
  8.         super();  
  9.         this.number = number;  
  10.         this.name = name;  
  11.     }  
  12.     @Override  
  13.     public String toString() {  
  14.         // TODO Auto-generated method stub  
  15.         return  name+number;  
  16.     }  
  17.       
  18. }  

[java] view plain copy
  1. public class Teacher  extends Student {  
  2.   String salary;  
  3.   public Teacher() {  
  4.     // TODO Auto-generated constructor stub  
  5. }  
  6. public Teacher(int number, String name, String salary) {  
  7.     super(number,name);  
  8.     this.salary = salary;  
  9. }  
  10.   @Override  
  11.     public String toString() {  
  12.         return super.toString()+this.salary;  
  13.     }  
  14. }  


[java] view plain copy
  1. public class Test {  
  2.    public static void main(String[] args) {  
  3.     Student s1=new Student(12,"xiaoming");  
  4.     Teacher t1=new Teacher(22,"张","1000");  
  5.     System.out.println(s1.toString());  
  6.     System.out.println(t1.toString());  
  7. }  
  8.      
  9. }  


输出结果为 


 

 

 

位置注意:调用父类的构造方法的语句(super语句)必须是构造方法中的第一条语句

因为创建对象的时候,需要先创建父类对象,再创建子类对象。

注意:创建对象时,先创建父类对象,在创建子类对象。如果没有显示调用父类的构造方法,将自动调用父类的无参构造方法。

 

构造方法注意不要忘记写无参构造方法因为如果只定义了有参数的构造方法,无参构造方法无法自动生成

 

6  一切类(祖先)Object

所有类都直接或者间接地继承了java.lang.Object类,Object类中定义了所有的java对象都具有的相同行为,是所有类的祖先。

一个类如果没有使用extends关键字,那

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网红口罩 口罩有哪些 煤矿口罩 口罩的价格 棉布口罩 放雾霾口罩 透气口罩 3m9001v口罩 朝美口罩 防毒气口罩 透明口罩 口罩怎么做 防烟口罩 口罩控 稳健口罩 哪种口罩好 那种口罩好 保暖口罩 3mn95口罩 kn95口罩 口罩论坛 求购口罩 戴口罩图片 m95口罩 工业口罩 三m口罩 全棉口罩 批发口罩 口罩哪个好 定制口罩 个性口罩 口罩机械 活性碳口罩 微笑口罩 黑色口罩 口罩大全 口罩时尚 品牌口罩 黑口罩 网上买口罩 自己做口罩