首页 > 技术文章 > java基础继承

ONE-PIECE-ZXZ 2018-10-28 16:18 原文

为什么用继承: 因为继承可以减少代码的冗余,提高维护性,为了从根本上解决存在的问题,就需要继承,就是将多个类当中的相同的地方提取到一个父类当中。父类更通用,子类更具体。

1 父类的继承格式
2 语法:public class 父类{
3     
4 }

public class 子类 extends 父类{
}
继承关键字:extends 在java中类的继承是单一继承,就是说一个子类只能拥有一个父类

super关键字 

super的作用:

  • 调用父类的构造方法
  • 调用父类的方法
语法:
1. 子类不继承父类的构造方法,只是调用。如果父类的构造方法带有参数,必须要在子类的构造器中显示的通过super关键字调用父类的构造器,并配以相当的参数列表。super必须出现在子构造器方法的第一行。   

语法:
public Circle(double radius,String color,boolean filled){
    super(color,filled)//调用(父类)构造方法
    this.radius = radius;
}

语法:super.getArea();
也可以调数据域,但不可以调private int age;私有的数据域

构造方法链的用法:首先会沿着继承链调用所有父类的构造方法。
 1 package 多态;
 2 
 3 public class Demo1 {
 4 
 5     public static void main(String [] args) {
 6         Faculty fac = new Faculty();
 7     }
 8 }//构造方法链
 9 
10 class Faculty extends Employee{
11     public Faculty() {
12         System.out.println("这是我的第1个程序");
13     }
14 }
15 
16 class Employee extends Person{
17     public Employee() {
18         System.out.println("这是我的第2个程序");
19         System.out.println("这是我的第3个程序");
20     }
21 }
22 
23 class Person{
24     public Person() {
25         System.out.println("这是我的第4个程序");
26     }
27 }

 

 

覆盖和重载的区别
如果在新类中定义一个方法,其名称、返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法
被覆盖的方法在子类中只能通过super调用。
注意:覆盖不会删除父类中的方法,而是对子类的实例隐藏,暂时不使用。

对象类Object和它的toString()方法
java中每个类都来源于java.lang.Object类,如果一个类没有指定继承性,默认为Object
要熟悉Object提供的方法。
toString()方法会返回描述对象的字符串

推荐阅读