抽象方法

简介: 抽象方法

引出抽象

求圆 ,矩形,三角形,面积

发现的问题

每一个图形计算面积的方式都不一样,所以每一个类都必须得要覆盖父类当中的 getArea方法,来去实现求面积的方式

带来的问题

怎么样保证子类必须得要覆盖父类当中定义的方法。父类不需要提供方法体

抽象方法

格式

在方法前面添加了一个关键字 abstract

抽象方法特点

  1. 抽象方法是没有方法体的
  2. 抽象方法必须得要定义在抽象类或接口当中
  3. 抽象方法不能是私有的 private,final, static

注意点

子类必须得要去覆盖此方法,在定义的时候不要方法体了。

抽象类

概念

abstract 修饰的类,就成为了抽象类,抽象类必须得要有子类才行。(抽象类一般都当作父类来继承)

抽象类当中的注意点

  1. 抽象类是不能直接创建对象的。
  2. 抽象类当中,可以有抽象方法 ,也可以有非抽象方法(普通方法:给子类调用的)
  3. 子类没有去覆盖抽象方法,把子类也变成抽象类
  4. 构造方法不能定义为私有化 (抽象方法必须得要让子类继承之后,才能实现内部的方法体。子类继承的话,先去调用父类的构造方法)
  5. 抽象类不能使用 final 来去修饰

抽象类与普通的类有什么区别

  • 普通类你有的(方法 ,字段,构造器),抽象类都有
  • 抽象不能创建对象。抽象类可以包含抽象方法,也可以包含非抽象方法
  • 抽象类必须有子类才有意义

相关文章
抽象类
Java中的抽象类是一种特殊的类,它可以包含抽象方法和普通方法。抽象方法是没有实现的方法,只有声明,没有实现。抽象类不能被实例化,只能被继承。继承抽象类的子类必须实现抽象类中的所有抽象方法,否则子类也必须声明为抽象类。抽象类可以有构造函数,但是不能是public或者protected,只能是private或者protected。抽象类可以有静态方法,也可以有非静态方法。抽象类可以有成员变量,也可以有静态成员变量。抽象类可以被继承,也可以被实现接口。
|
6月前
|
C++
C++程序中的抽象类
C++程序中的抽象类
69 0
|
6月前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
62 0
|
6月前
|
存储
抽象类为什么有抽象方法?
抽象类为什么有抽象方法?
|
6月前
|
C++
56纯虚函数与抽象类
56纯虚函数与抽象类
24 0
|
Java 编译器
认识抽象类
认识抽象类
83 0
|
程序员 C# 索引
知识回顾:抽象类与抽象方法
知识回顾:抽象类与抽象方法
109 0
抽象类和抽象方法
抽象方法abstract public void Func();声明了abstract 不能有函数体 声明了virtual可以有函数体
524 0