• JAVA 面向对象 三大特征:继承


    什么是继承 

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

        多个类可以称为子类,单独这个类称为父类、超类或者基类。

        子类可以直接访问父类中的非私有的属性和行为。

        通过 extends 关键字让类与类之间产生继承关系。


    继承的优点

        提高了代码的复用性

        提高了代码的维护性

        让类与类之间产生了关系,是多态的前提


    继承的缺点

        增强了类之间的耦合。

        软件开发的一个原则是高内聚,低耦合。

        内聚是一个模块内各个元素彼此结合的紧密程度

        耦合是一个软件里面不同的模板之间相互连接的数量

        破坏了类的封装性,其实继承一般多用于抽象方法的继承和接口的实现


    如何使用extends来实现继承的关系

    语法

       [修饰符列表] class 子类名 extends 父类名{

        类体;

    }


    首先 我们自己来第一 一个父类Demo

      public class Demo{

      public void d1{

      System.out.println("Demo里面的d1方法");

    }

      private void d2{

      System.out.println("Demo里面的d2方法");

    }

    }


    定义一个子类Demo1来Demo

    public class Demo1 extends Demo{

      public void d3(){

      System.out.println("Demo1里面的d3方法");

    }

    }


    写一个测试类来测试一下

     public class Test01{

      public static void main(String[] args){

      Demo1 f = new Demo1();

      //因为Demo1继承了Demo,所以可以在子类里面调用父类的方法

       f.d1();

       //f.d2();//子类不能访问父类中private修饰的方法

       //Demo1中自己的方法

       f.d3();

    }

    }


    将上面的代码修改一下,创建一个Demo的父类Demo2

    public class Demo2{

      public void d4(){

      System.out.println("Demo2里面的d4方法");

    }

    }


    让Demo继承Demo2

    public class Demo extends Demo2{

      public void d1(){

      System.out.println("Demo里面的d1方法");

    }

      public void d2(){

      System.out.println("Demo里面的d2方法");

    }

    }


    写一个测试类来测试一下

    public class Test02{

     public static void main(String[] args){

      Demo1 D = new Demo1();

      D.m0();//可以调用

    }

    }


    Java不支持多继承,但是支持多层继承,即子类—>父类—>爷爷类….—>祖先类—>Object类,子类可以访问其先辈类里面的非private修饰的成员方法和成员变量。

  • 相关阅读:
    输入npm install 报错node-sass@4.13.0 postinstall:`node scripts/build.js` Failed at the node-sass@4.13.0
    二、vue组件化开发(轻松入门vue)
    一、vue基础语法(轻松入门vue)
    (三)ES6基础语法。。。freecodecamp笔记
    (一)响应式web设计。。。freecodecamp笔记
    LeetCode42. 接雨水(java)
    (5)air202读取串口数据并上传到阿里云显示
    (四)HXDZ-30102-ACC检测心率血氧数据并通过串口助手显示
    (三)air202连接阿里云上传静态数据
    2016-2017 National Taiwan University World Final Team Selection Contest A
  • 原文地址:https://www.cnblogs.com/DongXianSen/p/13099842.html
Copyright © 2020-2023  润新知