ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java se的语言特征之继承

2026/9/13 2:27:32 拓冰建站 浏览量
Java se的语言特征之继承

目录

  • 继承的定义
  • 子类与父类的特殊情况
  • this与super的区别
  • 两个不同的包的类怎么去继承
  • 继承与组合
  • 继承中的注意点

继承的定义

继承就是对共类进行抽取,放进一个特定的类里面

class Animal{public String name;public int age;public void eat(){System.out.println(this.name + "吃饭");}
}
class Dog extends Animal{public String name;public int age;public void eat(){System.out.println(this.name + "吃饭");}public void bark(){System.out.println(this.name + "汪汪叫");}
}
class Cat extends Animal{public String name;public int age;public void eat(){System.out.println(this.name + "吃饭");}public void miaomiao(){System.out.println(this.name + "喵喵叫");}
}

在上面的这个代码中,就是一个子类和父类之间的继承关系
其中Animal就是一个父类,也叫超类或者基类
其中的Cat以及Dog就是子类,也叫派生类
里面的extends就是一个继承符号,
所以的话,继承就是像代码中,猫猫和小狗,共有的东西,就放在一起,比如比如他们都有名字,都有年龄,都会吃饭所以放在一起一起,但是因为他们叫声不一样,所以不能给他们放在父类里面

注意:之前咋们学了private会限制我们的访问,但是这个不会限制继承,我们就可以继承后用get直接访问到

子类与父类的特殊情况

1>子类如何初始化父类和本身(成员变量名不相同时候)

public void method(){a = 1;b = 2;
}

就这样正常初始化就可以了

2>子类与父类变量名相同时,如何访问父类变量
super.成员变量
super.成员方法
super( )父类构造方法

3>子类继承父类以后,父类成员如何初始化
**注意:**子类在构造完成之前,一定要先帮助父类完成初始化

class Animal{public String name;public int age;public void eat(){System.out.println(this.name + "吃饭");}public Animal(String name , int age){this.name = name;this.age = age;}
}class Dog extends Animal{public Dog(){super("小黄",8);}public void bark(){System.out.println(this.name + "汪汪叫");}
}

这上面就是一个完整的子类与父类的书写方法
其中在父类里面,有个this写的那个,那就是先帮父类完成的初始化
在子类里面,我们就直接通过super,来访问父类
里面super的作用,就是调用父类构造方法,帮助初始化子类从父类继承的成员,并不会生成父类对象

**注意:**记得我们在上一篇的封装里面,我们有说过,如果在父类默认无构造方法的时候,其中有一个不显示的不带参数的构造方法,子类也是一样的,也有一个空的构造方法

继承关系上:先父类后子类,但是有静态等多种输出时候,遵循先父类静态再子类静态,再父类再子类

this与super的区别

this,指代的是当前的对象
用法:
this.成员变量
this.成员方法
this( )调用构造方法

super指代的是当前对象的父类
用法:
super.成员变量
super.成员方法
super( )调用父类构造方法

**注意:**super不可以在静态方法中使用

两个不同的包的类怎么去继承

public class Test extends Test2{System.out.println(super.a);
}
public static void main(String[]args){Test test = new Test();test.func();
}

继承与组合

class Student{}
class Teacher{}
class School{public Student[ ] students;public Teacher[ ] teachers;
}

这一种的设计风格就是组合

继承中的注意点

1>继承的父类的访问修饰限定符一定是public的
2>一个类不可以去继承多个父类
3>一般的继承关系不超过三层
4>在访问修饰限定符前面可以加一个"final",可以让当前的类不可以被继承(被称其为密封类)
5>在一个变量前面加上"final",也可以让一个变量成为常量,只能初始化一次