美文网首页
2018-05-08抽象类

2018-05-08抽象类

作者: MiaLing007 | 来源:发表于2018-05-08 11:46 被阅读0次

含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class
类中定义抽象方法必须在具体
(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

  1. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
    eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
  2. 抽象类中可以包含静态方法,接口中不能包含静态方法
  3. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

抽象类不能被实例化, 但抽象类是可以含有构造方法的.那这里构造方法作用是什么呢.
构造方法用于类的初始化操作.
在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法
抽象类虽然不能自己实例化对象,但是在子类新建对象调用子类的构造方法时会先调用抽象类的无参构造方法,这样一来,就可以给给抽象类的参数赋值了。

相关文章

  • 2018-05-09

    2018-05-08 李晓红Dorothy 2018-05-08 06:00 · 字数 283 · 阅读 3 · ...

  • 2018-05-08抽象类

    含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的...

  • 2018-05-08

    2018-05-08 戴师傅简书作者 2018-05-08 20:52 打开App (稻盛哲学学习会)打卡第53天...

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

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

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

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

  • v-for = Object - 2018-05-08

    2018-05-08创建 v-for循环的是 对象object 时, for example:

  • Dart 抽象类 多态 和接口

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

  • abstract关键字

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

  • 抽象类

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

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

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

网友评论

      本文标题:2018-05-08抽象类

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