抽象类的学习

1.抽象类的定义 

从一个简单的层面来说只要被abstract关键字修饰的类就是抽象类,被修饰的方法就是抽象方法,一个抽象类可以含有或者不含有抽象方法,抽象方法只包含一个方法名,而没有方法体。

抽象的含义是什么呢?抽象是一个隐藏实现细节并只向用户显示功能的过程。

我们可以将一个方法进行抽象,也可以将一个类进行抽象。

抽象类定义:在 Java 中一个没有方法体的方法应该定义为抽象方法 而类中如果有抽象方法,则必须定义为抽象类

继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。

2.抽象类的使用格式

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

 3.使用原则

(1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public;
(2)抽象类不能直接实例化,需要依靠子类采用向上转型的方式处理;
(3)抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类;
(4)子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。);

抽象类存在的意义是为了被子类继承,否则抽象类将毫无意义,抽象类体现的是模板思想,模板是通用的东西抽象类中已经是具体的实现(抽象类中可以有成员变量和实现方法),而模板中不能决定的东西定义成抽象方法,让使用模板(继承抽象类的类)的类去重写抽象方法实现需求,这是典型的模板思想。

4.模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

特点:

  • 子类按需要重写父类中的方法。
  • 以抽象父类中的定义进行调用。

模板模式的使用场景

1.有多个子类共有的方法,且逻辑相同。

2.重要的、复杂的方法,可以考虑作为模板方法。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值