文章目录
  1. 1. 继承的基本概念
  2. 2. 继承的限制
  3. 3. 子类的实例化过程
  4. 4. 方法的重写
  5. 5. super关键字

继承的基本概念

  1. 继承是面向对象三大特征之一。
  2. 被继承的类称为父类(超类),继承父类的类称为子类(派生类)。
  3. 继承是指一个对象直接使用另一个对象的属性和方法。
  4. 通过继承可以实现代码重用。 例如:
    动物(猫,狗,鸡,猪……)
    鸡(家鸡,野鸡)
    鸡属于动物,鸡可以继承动物的属性和方法。家鸡属于鸡,可以继承鸡的属性和方法。当然家鸡也属于动物,也可以继承动物的属性和方法。
    语法:
    [访问权限] class 子类明 extends 父类名{
    类体定义;
    }
    示例:
    1
    2
    3
    4
    5
    6
    public class Dog{
    protected String name;
    }
    public class HomeDog extends Dog{
    //类的定义
    }

继承的限制

  1. Java只能实现单继承,也就是一个类只能有一个父类。
  2. 允许多层继承,即:一个子类可以有一个父类,一个父类还可以有其他的父类。
  3. 继承只能继承非私有的属性和方法。
  4. 构造方法不能被继承。

子类的实例化过程

在子类进行实例化操作的时候,首先会先让父类进行实例化操作。之后子类再自己进行实例化操作。
子类的实例化过程:

1. 子类实例化时会先调用父类的构造方法
2. 如果父类中没有默认构造方法,在子类的构造方法中必须显示的调用父类的构造方法

方法的重写

在Java中,子类可继承父类中的方法,而不需要编写相同的方法。但有时子类并不想原封不动的继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称为方法覆盖。
关于方法重写的一些特征:

1. 发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)
2. 子类抛出的异常不能超过父类相应方法的异常(子类异常不能大于父类异常)
3. 子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)

注意: 方法的重载和方法的重写不是一个概念。重载发生在同一个类当中,重写发生在子类和父类两个类之间。

super关键字

super 可以完成以下操作

1. 使用super调用父类中的属性
2. 使用super调用父类中的方法
3. 使用super调用父类中的构造方法

综合示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Test1{
public static void main(String[] args){
Dog dog= new Dog("wangwang");
dog.print();
dog.desc();
}
}
//父类
class Animal{
//如果属性需要子类继承,那么可以使用protected关键字声明
public Animal(String name){
System.out.println("animal");
}
protected String name;
protected void desc(){
System.out.println("animal name is"+name);
}
}
//子类
class Dog extends Animal{
//显示的调用父类的构造方法:
super(name); //使用super关键字调用,必须在构造方法的第一行
public Dog(String name){
System.out.println("dog");
this.name=name;
}
public void print(){
System.out.println("my name is"+name);
}
//重写父类的方法
public void desc(){
super.desc(); //调用父类的方法使用super
System.out.println("dog name is"+name);
}
}

文章目录
  1. 1. 继承的基本概念
  2. 2. 继承的限制
  3. 3. 子类的实例化过程
  4. 4. 方法的重写
  5. 5. super关键字