小言_互联网的博客

JAVA基础(第8天抽象类)

335人阅读  评论(0)

抽象类

定义:
在JAVA中通过继承可以创建一种类专门用来当做父类,这种类成为“抽 象类”(含有抽象方法的类叫抽象类)


## 抽象类特点:

  • 它必须要有abstract修饰
  • 抽象类中可以没有任何方法
  • 抽象类中可以有无参构造和有参构造,但是抽象类不能被实例化,可以用类对象的引用来代替
  • 抽象类可以有抽象方法,但是必须保证抽象方法没有方法体
  • 抽象类的子类必须实现抽象方法,若不实现抽象类的抽象方法,则它的子类必须为抽象类
  • 抽象类可以有类变量,类方法
  • 抽象类可以有成员变量,成员方法
  • 抽象类可以有普通代码块和静态代码块
  • 抽象类中还可以定义常量
  • abatract和final不能同时加到一个类上,即:abstract final class Plant()错误
  • abstract不能与private,final,static直接一起使用
  • 抽象类必须被继承
  • 抽象类中的普通方法可以不被实现

抽象方法
抽象方法指一些有方法声明,而没有方法体的方法

  • 抽象方法只能由抽象类或接口定义
  • 抽象方法的目的在于指定派生类必须实现与这一方法关联的行为
  • 它要被使用,必须有子类重写抽象方法后,建立子类对象的引用,如果子类只覆盖了一部分抽象方法,那么该子类还是一个抽象类
  • 抽象方法只需声明,但必须被重写

抽象类和接口的异同

接口 抽象类
变量 只能定义静态常量,不能定义普通变量。不可以私有,默认是public static final类型,且必须给定初始值,实现类中不能重新定义,不能改变其值 可以定义静态常量,也可以定义普通变量。默认是friendly型,值在子类中重新定义,亦可以重新赋值。
初始化 常量必须初始化 变量可以不用初始化
方法 jdk8之前,只包含抽象方法,jdk8之后,还包含默认方法,静态方法 。不可以私有的,默认方法是public,abstract类型 可以包含普通方法,抽象方法。可以私有
代码块 不能包含初始化代码块 能包含初始化代码块
实现 多实现 单继承


转载:https://blog.csdn.net/qq_44102678/article/details/101982879
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场