zoukankan      html  css  js  c++  java
  • Java继承概述以及Java继承案例和继承的好处

    Java继承概述

    1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。

    2.在Java中通过extends关键字可以实现类与类的继承。

      例如:class 子类名 extends 父类名 {}

    3.单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。

    4.有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。

    -----------------------------------------------------------------------------

    首先我来写两个代码:
    //定义学生类
    class Student {
      String name;
      int age;

      public Student() {}

      //getXxx()/setXxx()

      public void eat() {
        System.out.println("吃饭");
      }
    }

    //定义老师类
    class Teacher {
      String name;
      int age;

      public Teacher() {}

      //getXxx()/setXxx()

      public void eat() {
        System.out.println("吃饭");
      }
    }

    我们观察上面两个代码:
      发现name,age成员变量,以及getXxx()/setXxx(),还有eat()等都是相同的。
      如果我们后来继续定义类,举例:工人类,军人类。他们是不是也具备这些内容呢?
      那么,我们每一次定义这样的类的时候,都要把这些重复的内容都重新定义一遍。
      麻烦不?当然麻烦。所以,我们要考虑改进?
    那么如何改进呢?
      我这想的:我能不能把这些相同的内容给定义到一个独立的类中。
      然后,让这多个类和这个独立的类产生一个关系,有了这个关系后,
      这多个类就可以具备这个独立的类的功能。
      为了实现这个效果,Java就提供了一个技术:继承。

      父亲:
        4个儿子

    继承怎么表示呢?继承的格式是什么样子的呢?
    class Fu {}

    class Zi extends Fu {

    }

    我们就回头修改我们的代码:
    class Person {
      String name;
      int age;

      public Person() {}

      //getXxx()/setXxx()

      public void eat() {
        System.out.println("吃饭");
      }
    }

    class Student extends Person {
      public Student() {}
    }

    class Teacher extends Person {
      public Teacher() {}
    }

    -----------------------------------------------------------------------------

    Java继承案例和继承的好处

     1 /*
     2     继承概述:
     3         把多个类中相同的内容给提取出来定义到一个类中。
     4         
     5     如何实现继承呢?    
     6         Java提供了关键字:extends
     7         
     8     格式:
     9         class 子类名 extends 父类名 {}
    10         
    11     好处:
    12         A:提高了代码的复用性。
    13         B:提高了代码的维护性。
    14         C:让类与类之间产生了关系,是多态的前提。
    15     
    16         类与类之间产生了关系,其实也是继承的一个弊端:
    17         类的耦合性增强了。
    18         
    19         开发的原则:低耦合,高内聚。
    20         耦合:类与类之间的关系。
    21         内聚:就是自己完成某件事情的能力。
    22 */
    23 
    24 //使用继承前
    25 /*
    26 class Student {
    27     public void eat() {
    28         System.out.println("吃饭");
    29     }
    30     
    31     public void sleep() {
    32         System.out.println("睡觉");
    33     }
    34 }
    35 
    36 class Teacher {
    37     public void eat() {
    38         System.out.println("吃饭");
    39     }
    40     
    41     public void sleep() {
    42         System.out.println("睡觉");
    43     }
    44 }
    45 */
    46 
    47 //使用继承后
    48 class Person {
    49     public void eat() {
    50         System.out.println("吃饭");
    51     }
    52     
    53     public void sleep() {
    54         System.out.println("睡觉");
    55     }
    56 }
    57 
    58 class Student extends Person {}
    59 
    60 class Teacher extends Person {}
    61 
    62 class ExtendsDemo {
    63     public static void main(String[] args) {
    64         Student s = new Student();
    65         s.eat();
    66         s.sleep();
    67         System.out.println("-------------");
    68         
    69         Teacher t = new Teacher();
    70         t.eat();
    71         t.sleep();
    72     }
    73 }
  • 相关阅读:
    使用 GPUOperator 与 KubeSphere 简化深度学习训练与 GPU 监控
    基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台
    在 Kubernetes Pod 中如何获取客户端的真实 IP
    云原生的 WebAssembly 能取代 Docker 吗?
    KubeSphere 开源 KubeEye:Kubernetes 集群自动巡检工具
    对于 Serverless, DevOps, 多云及边缘可观察性的思考与实践
    终于可以像使用 Docker 一样丝滑地使用 Containerd 了
    你真的理解 Kubernetes 中的 requests 和 limits 吗?
    顶点(vertexs) 图元(primitives) 片元(fragments片断) 像素(pixels)
    GLUT回调函数
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8449042.html
Copyright © 2011-2022 走看看