面向对象的四大特性之抽象

背景:当定义类中某个方法的时候,代码是不确定的,就可以将其声明成抽象方法。 只有声明,没有实现;通常这些方法交由子类去实现,而这样的类也称为抽象类
冲突:既然抽象类中的方法是不确定的,那么其他类实例化该类时,则不能调用该类的方法
疑问:如何才能够使用抽象类的方法呢?
回答:抽象
如何实现抽象呢?
通过abstract关键字来抽象对应的方法和类
abstract关键字修饰的方法称为抽象方法
abstract关键字修饰的类称为抽象类
那么如何定义一个抽象类和抽象方法呢?
抽象类语法:访问修饰符的部分添加abstract class 类名{}
抽象方法语法:访问修饰符的部分添加abstract 返回类型 方法名();
抽象类:
在这里插入图片描述
正如上面图片中描述的那样,抽象有以下特性
①包含抽象方法的类必须为抽象类
②父类里定义了抽象方法,子类必须实现该抽象方法
③抽象方法只是声明,无具体实现,具体实现由其子类继承后实现
子类:
在这里插入图片描述
另外,一般我们在一个类转换成抽象类,目的是防止实例化

综上所述:
①抽象的背景是因为定义一些方法时,代码不确定
②抽象的实现是通过abstract关键字来定义抽象类和抽象方法
③一个类中有抽象的方法,则该类一定是抽象类,反过来不一定
④继承抽象类的子类必须实现其抽象方法
⑤既然子类能够实现抽象父类的方法,那么父类的抽象方法的访问修饰符必然是public,否则不能实现
⑥抽象类不能被实例化,虽然抽象类中可以有不抽象的方法,但仍然不能实例化,原因在于,一旦抽象类中有抽象方法时,则就不能实例化了,前后会矛盾的,故抽象类不能被实例化

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值