Java抽象类与抽象方法

抽象类的概念

随着继承层次中一个个子类的定义,类也越来越趋向于具体,而类的父类也越趋向于通用,越一般,类的设计应保证父类和子类能够共享特征,有时就会把父类设计得非常抽象,以至于父类没有具体的实例,这样的类就叫做抽象类;

在编程中我们使用关键字abstract来修饰一个类使之称为抽象类,使用abstract修饰过的类无法创建对象但其仍然有构造器,abstract不会影响类本身的结构,而且其子类在创建对象时也需要调用其构造器。

抽象方法

抽象方法就是用abstract修饰过的方法,表示一个确定的功能抽象方法中没有方法体,只有抽象方法的声明,但其功能是确定的,只是不知到怎麽去实现(体现为没有方法体),我们需要对其所在类的子类中对其进行实现(implement),也可以看作在子类中重写此方法。

举例:

先声明一个父类并且使用abstract修饰,使之成为抽象类;

再声明两个子类Circle和Square使之继承于GeometricObject,并且对GeometricObject中的抽象方法进行实现。

 使用abstrac修饰方法时有一些需要注意的点:

不能使用abstract去修饰权限为private的方法;

使用final修饰过的方法不能使用abstract去修饰

静态方法无法使用abstract去修饰

模板方法的设计模式:

由抽象类的特点可以体现出模板方法的设计模式,抽象类作为子类的一个通用模板,让子类在此基础上进行拓展,并使子类仍然具有抽象类的行为方式。

在我们解决实际问题时,如果功能内部一部分时具体的,已经确定好了的,而另一部分是不确定的。这时我们就可以将不确定的部分暴露出去让子类去实现。即在开发中有一部分的功能是确定的,而有的功能是易变的,我们可以把易变的部分让子类去实现,从而达到目的,这就是所谓的模板方法的设计模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值