abstract抽象

abstract:抽象spa

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

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

 

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

好比人这个“类”,都有说话的功能;人“类”下有不少子类,如“中国人”、“德国人”、“法国”人,其都有各本身的语言,即说话功能各不相同。继承

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

在这样的状况下,在父类中定义说话功能就显得多余了,由于其被全部子类覆盖。方法

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

用代码表示以下:语言

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");
    }
}

 

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

功能不肯定的,就能够用抽象来

 

抽象类的特色:
一、抽象方法必定被定义在抽象类串
二、抽象方法、抽象类必须被abstract关键字修饰
三、抽象方法不能用new建立对象,由于调用抽象方法没有意义
四、抽象类中的抽象方法要被使用,必须由子类复写其全部的抽象方法后,再创建子类对象调用。若是子类只复写了部分抽象方法,那些该子类一个抽象类

 

抽象类能够有抽象方法,也能够有非抽象方法;也能够没有抽象方法。

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

 

抽象类与通常类的区别:

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

抽象类比通常类多了抽象方法。

抽象类不能被实例化。

相关文章
相关标签/搜索