美文网首页
第三章②抽象类

第三章②抽象类

作者: 犀首_0c79 | 来源:发表于2019-05-04 21:50 被阅读0次

类、构造器、属性、方法

抽象的使用

就是父类无法全部具体实现,而是由子类提供具体实现的,对象的,类

abstract:抽象的,可以用来修饰类、方法

abstract修饰类(抽象类)

①不可被实例化

②抽象类有构造器(凡是类都有构造器,为了保证创建类的时候有实例化的过程)

abstract修饰方法(抽象方法)

①格式没有方法体、没有{}。例如public abstract void eat();

②抽象方法只保留方法的功能,具体的执行,交给继承抽象类的子类,由子类重写此抽象方法

③抽象方法所在的类一定是抽象类

④抽象类可以没有抽象方法

⑤若子类继承抽象类,重写了所有的抽象方法:此类就能实例化,创建对象

⑥若子类继承抽象类,没有重写所有的抽象方法:此类中仍然有抽象方法,则此类必须声明为抽象的,那么此类就不能实例化,创建对象

⑦不影响多态的使用,还是调用子类的方法

抽象类的子类如果没有重写抽象类中的任何一个方法,那么这个子类必须也是抽象类,因为抽象方法所在的类必须是抽象类,否则不满足抽象规则。要么重写方法,要么定义抽象类。因为子类继承了父类,子类可以调用父类非私有的方法,这一调用就调用到抽象方法上了。


抽象类:是在继承基础上衍生出来的,有继承才有抽象,光抽象没什么用

多态:也是在继承基础上衍生出来的,将子类赋给父类,用父类对象调用子类的方法

注意

abstract不能修饰:属性、构造器

属性

①规定不让用

②这是一种思想,抽象的目的①对于类来讲,不能让此类实例化②对于方法来讲,让子类重写(子类可以覆盖)。

③属性不能覆盖,子类用子类的,父类用父类的,都存在堆空间

构造器

①因为构造器不能重写

abstract不能和private、final、static共用

private:私有的,出了类就能访问,子类不能覆盖(或重写)声明为private的方法

final:最终的,不能被重写,而abstract又需要子类重写父类的方法

static:可以修饰属性、方法、代码块、内部类

因为一个声明为静态的就可以通过类来调用,而abstract修饰的不能调用

相关文章

  • 【自学java】语言入门(三) 面向对象(补)

    第三章 面向对象(补) : API 、 接口、抽象类 第一节 API 3.1.1 API API : 应用程序开发...

  • js.pattern -h 模板方法模式

    基于复用技术、抽象类-->继承抽象类 创建抽象类 实现抽象类

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

  • Dart 抽象类 多态 和接口

    抽象类 Dart中的抽象类:Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。抽象类通过a...

  • abstract关键字

    抽象类 PHP5 支持抽象类和抽象方法。抽象类不能被实例化,必须先继承该抽象类,然后实例化该抽象类的子类。抽象类中...

  • 抽象类

    什么是抽象类 抽象类的特征 抽象类的意义

  • 第三章②抽象类

    类、构造器、属性、方法 抽象的使用 就是父类无法全部具体实现,而是由子类提供具体实现的,对象的,类 abstrac...

  • 25.面向对象(抽象类. 多态)

    面向对象(抽象类. 多态) 一. 抽象类 抽象类不能实例化 继承抽象类的子类必须将抽象类中所有的抽象方法重写 抽象...

  • Dart 抽象类 多态 接口

    1.抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象...

  • Flutter/Dart - Dart中的抽象类 多态 和接口

    Dart中的抽象类 Dart中的抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口...

网友评论

      本文标题:第三章②抽象类

      本文链接:https://www.haomeiwen.com/subject/lnofoqtx.html