zoukankan      html  css  js  c++  java
  • abstract抽象

    abstract:抽象

    是用来修饰抽象类和抽象方法的

    那么什么抽象,抽象有究竟有什么用呢??

    我们知道,“类”是某一类具有相同特征或行为的物事,是将这些物事特征向上抽取得来的;“父类”也是子类不断向上抽取而来的。

    比如人这个“类”,都有说话的功能;人“类”下有很多子类,如“中国人”、“德国人”、“法国”人,其都有各自己的语言,即说话功能各不相同。

    也就是说子类的继承父类“说话”功能的同时,都有各自己特殊的说话功能,用代码表示也就是“子类说话功能会覆盖父类说话功能”。

    在这样的情况下,在父类中定义说话功能就显得多余了,因为其被所有子类覆盖。

    此时,父类的说话功能内容就要以去除,只保留功能定义,并用abstract(抽象)修饰。

    用代码表示如下:

    public class AbstractDemo {
    
        public static void main(String[] args) {
            new Chinese().speak();        //建立子类对象,并调用方法
        }
    }
    
    // 人都有说话的功能
    abstract class People {
        abstract void speak(); // 抽象方法只定义基本功能定义,不写功能主体。主体部分由子类复写完成,由子类实现。
    }
    
    // 中国人说中文
    class Chinese extends People {
        void speak() {
            System.out.println("speak Chinese");
        }
    
    }
    
    // 德国人说德语
    class German extends People {
        void speak() {
            System.out.println("speak German");
        }
    }

    抽象类中的抽象方法,是所有子类所必备具备的,只是各子类的实现方式不一样。父类只提供基本的功能,具体怎么实现则由各子类完成。

    功能不确定的,就可以用抽象来

    抽象类的特点:
    1、抽象方法一定被定义在抽象类串
    2、抽象方法、抽象类必须被abstract关键字修饰
    3、抽象方法不能用new创建对象,因为调用抽象方法没有意义
    4、抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,再建立子类对象调用。如果子类只复写了部分抽象方法,那些该子类一个抽象类

    抽象类可以有抽象方法,也可以有非抽象方法;也可以没有抽象方法。

    父类中的抽象方法,在子类中必须复写。达到父类强制子类完成其功能。

    抽象类与一般类的区别:

    无太大的区别,该如何描述事物就如何描述。只不过,该事物中出现了一些不确认的东西。这些不确认的东西,也是访一事物的功能,需要确认体现,但无法定义功能主体。

    抽象类比一般类多了抽象方法。

    抽象类不能被实例化。

  • 相关阅读:
    oc-25-id类型,
    oc-25-id类型
    [转贴]systemd 编写服务管理脚本
    [转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出
    Oracle 数据库备份启用压缩以及remap
    Support for SSL/TLS protocols on Windows
    微软自己的官网介绍 SSL 参数相关
    .NET4.0 加密通讯协议下TLS 的兼容支持问题.
    使用Word 进行UTF8 以及字符串编码的转换操作
    计算机管理以及设备管理的快捷打开方式
  • 原文地址:https://www.cnblogs.com/ibelieve618/p/6438669.html
Copyright © 2011-2022 走看看