• Java面向对象三大基本特征之继承


    继承是 Java 面向对象编程技术的一块基石,是面向对象的三大特征之一,也是实现软件复用的重要手段,继承可以理解为一个对象从另一个对象获取属性的过程。

    一、继承的概念

    1.概念:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

    2.生活中体现出继承的示例:

    兔子和羊属于食草动物类,狮子和豹属于食肉动物类。

    食草动物和食肉动物又是属于动物类。

    所以继承需要符合的关系是:is-a,父类更通用,子类更具体。

    虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。

    3.IS-A 关系

    IS-A 就是说:一个对象是另一个对象的一个分类

    二、继承的使用

    1.在Java之中,如果要实现继承的关系,可以使用如下的语法:

    在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

    class 父类 {

    }

    class 子类 extends 父类 {

    }

    2.示例:

    父类:Animal类

    1. public class Animal{
    2. private String name;
    3. private int health;
    4. private int love;
    5. public Animal() {
    6. }
    7. public Animal(String name, int health, int love) {
    8. this.name = name;
    9. this.health = health;
    10. this.love = love;
    11. }
    12. public String getName() {
    13. return name;
    14. }
    15. public void setName(String name) {
    16. this.name = name;
    17. }
    18. public int getHealth() {
    19. return health;
    20. }
    21. public void setHealth(int health) {
    22. this.health = health;
    23. }
    24. public int getLove() {
    25. return love;
    26. }
    27. public void setLove(int love) {
    28. this.love = love;
    29. }
    30. void print() {
    31. System.out.println("宠物信息:昵称:" + this.name + ",健康值:" + this.health
    32. + ",亲密度:" + this.love);
    33. }
    34. }

    子类:Dog类

    1. public class Dog extends Animal{
    2. // 品种
    3. private String strain;
    4. public Dog() {
    5. }
    6. public Dog(String name, int health, int love, String strain) {
    7. super(name, health, love);
    8. this.strain = strain;
    9. }
    10. public String getStrain() {
    11. return strain;
    12. }
    13. public void setStrain(String strain) {
    14. this.strain = strain;
    15. }
    16. public void print(){
    17. // System.out.println("宠物信息:昵称:" + this.getName() + ",健康值:" + this.getHealth()
    18. // + ",亲密度:" + this.getLove()+",品种:"+this.strain);
    19. super.print();
    20. System.out.println("品种:"+this.strain);
    21. }
    22. }

    三、继承的必要性

    1.提高了代码的复用性

    继承是Java中实现代码重用的重要手段之一。子类继承父类后可以使用父类的方法,因此可以大大节省代码量。

    2.提高了代码的可维护性

    由上面的代码可知Animal类就可以作为一个父类,然后Dog类继承这个类之后,就具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)。

    四、继承的局限性

    1.Java中只支持单根继承,即一个类只能有一个直接父类;Java之中只允许多层继承不允许多重继承,Java存在单继承局限

    2.在一个子类继承的时候,实际上会继承父类之中的所有操作(属性、方法),但是需要注意的是,对于所有的非私有(no private )操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)。

    3.在继承关系之中,如果要实例化子类对象,会默认先调用父类构造,为父类之中的属性初始化,之后再调用子类构造,为子类之中的属性初始化,即:默认情况下,子类会找到父类之中的无参构造方法。

  • 相关阅读:
    Mybatis-Plus常见注解
    cvf_使用lora方法增强能力
    【百度0912】选择题
    过五关,斩六将!「网易/美团/菜鸟」已拿offer【Java岗】
    C++ 不知算法系列之深入动态规划算法思想
    ATF源码篇(一):起始
    【全志T113-S3_100ask】13-1 Linux c语言ioctl驱动oled(iic、ssd1306)屏幕
    第9章 Spring Boot整合JPA 与 JpaRepository 基础方法介绍
    centos rpm方式安装jenkins
    汇编-变量
  • 原文地址:https://blog.csdn.net/lv121218/article/details/127974468