面向对象之抽象abstract

来源:互联网 发布:csgo弹道优化参数 编辑:程序博客网 时间:2024/05/29 09:15

                              面向对象之抽象abstract

abstract: 抽象的

1.可以用来修饰:方法

abstract使用的前提:基于继承性,父类抽象,子类去重写。

2.具体的:

abstract修饰类:

  1.不能实例化(或不能创建此抽象类的对象

  2.抽象类中一定存在构造器(且构造器可以不止一个)。(为什么还要定义构造器呢?为了子类对象实例化,通过     super()调用此父类的构造器

  3.含抽象方法的类,一定是抽象类。抽象类中可以没有抽象方法的,可以只有普通方法。

2.abstract修饰方法:抽象方法

   1)格式:没有方法体,包括{}.如:public abstractvoid eat();  抽象方法不能被调用。

   2)抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法,如果子类不    重      写,会报错。

   3)若子类继承抽象类,并重写了所有的抽象方法,不一定是直接父类的,是所有的父类。,则此类是一个"实体              ",方可以实例化

   4)若子类继承抽象类,没有重写所有的抽象方法,意味着此类中仍有抽象方法,则此类必须声明为抽象的!

3.注意点:

abstract不能与有些关键字共用:

       1.abstract修饰方法时不能与final(不能被重写),staticprivate(类无法重写)共用。

       2.abstract只能用来修饰类和方法,不能修饰属性和构造器。

4.abstract的应用举例:

①InputStream类及内部的read()抽象方法

②GeometriObject类(几何图形类)及其内部的findArea()抽象方法


5.