Java抽象类

本文深入探讨了抽象类和抽象方法的概念,解释了它们在面向对象编程中的作用和使用场景,包括如何定义抽象类和抽象方法,以及它们与普通类和方法的区别。

抽象类

什么是类?

具有相同特征和行为的事物的统称,称为类。

类有什么作用?

类的作用是创建对象。

类里可以包含哪些内容?

  1. 属性(静态属性,非静态属性)
  2. 方法(静态方法,非静态方法)
  3. 构造器
  4. 代码块(静态代码块,非静态代码块)

什么是抽象类?

抽象类和普通的类非常相似。普通类能包含的内容,抽象类都可以包含。

唯一的不同点就是,抽象类不能创建对象

如何创建一个抽象类?

创建抽象类,只需要在创建类的时候,添加一个关键字abstract.

语法格式如下:

public abstract class Shape{
    ....
}

抽象类的特点:不能创建对象,不能创建对象,不能创建对象

抽象类有什么用?

类不就是用来创建对象的吗?抽象类不能创建对象有什么用?

抽象类的最大价值就是被子类继承

抽象类可以定义公共的信息,例如 形状类的 周长,面积,边的个数。

哪些信息写到抽象类里?

需要有某些方法,但是这个类(父类)实现这些方法没有意义,不写方法体还会报错,这样的方法要写在抽象类里,而且这个方法要声明为抽象方法。

一个类中如果有抽象方法, 这个类必须定义为抽象类!

思考一下为什么要定义成抽象类?

假如包含抽象方法的类不定义成抽象类,那它就是一个普通类,普通类可以创建对象,创建完对象以后,对象可以调用这个类方法。万一调用到了这个抽象方法会怎么样?会报错!为什么会报错,因为这个抽象方法没有方法体。为了避免这个问题,不能让含有抽象方法的类去创建对象。从语法上,怎么样才能让一个类不能创建对象呢?定义成抽象类。

抽象方法

什么是抽象方法?

一个方法如果你只想声明一下,不想去实现它(本质上不是你不想实现它,而是你不知道应该怎么去实现它,这个时候应该交给子类去实现),这个方法可以定义为抽象方法。

抽象方法的特点:

​ 只有方法的声明,没有方法体。

如何定义抽象方法:

​ 在方法的返回值之前添加abstract关键字。

语法格式如下:

public abstract 返回值类型  方法名(参数列表);

一旦一个方法定义为抽象方法,你不能去实现。想实现都不能实现。

abstract 不能和哪些关键字同时出现?

private

abstract不能和private同时出现。

private修饰的方法是私有的,子类根本就不知道有这个方法。

abstract修饰的方法是希望子类去实现。

static

abstract不能和static同时出现。

abstract修饰的方法只有声明,没有实现(没有方法体)。

static 不创建对象,用类名就可以调用。

虽然抽象类不能创建对象,但是 static修饰的方法可以不用对象去调用,用类名可以直接调用,那调用了一个没有实现的方法会怎么样呢?会报错。怎么办?避免调用,所以说抽象方法不能定义为static。

final

abstract不能和final同时出现。

abstract修饰的方法希望子类去实现的。

final修饰的方法表示已经是最终实现了,子类不能重写了。

抽象类的注意事项

  1. 如果一个类继承了抽象类,这个类应该实现抽象中定义的全部的抽象方法。例如:Triangle继承了抽象类Shape,要实现Shape中定义的全部抽象方法。
  2. 如果一个类继承了抽象类,但是这个类并没有实现全部的抽象方法,意味着这个类包含抽象方法,那这个类也必须定义为抽象类。它尚未实现的方法教给它的子类去实现。

核心要点

  1. 抽象方法 只有方法的声明,没有方法体。
  2. 包含抽象方法的类必须定位抽象类。
  3. 抽象类不能创建对象。
  4. abstract不能和static、final、private中任何一个同时出现。

测试题

  1. 抽象类中可以不包含抽象方法吗? 对的
  2. 抽象方法可以不在抽象类中吗? 不可以
  3. 抽象类可以定义为私有类吗? 不可以 abstract不能和private同时出现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值