抽象类

一、为什么要用抽象类?
在面向对象的概念中,所有的对象都是通过类来表述,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

以下代码实例化没有意义:
Pet pet = new Pet (“贝贝”,20,40);
pet.print();
可以使用抽象类限制实例化:
public abstract class Pet {
}
二、 抽象类的使用
抽象类需要注意以下几点:
1、abstract放在class前,指明该类是抽象类
2、abstract放在方法声明中,则该方法是抽象方法,抽象方法没有方法体
3、一个抽象类可以含有多个抽象方法,也可以含有已实现的方法
4、抽象方法必须在子类中被实现,除非子类是抽象类

注意:
抽象类不能实例化,但可以指向一个实现它的子类对象;
abstract不能与final同时修饰一个类;
abstract不能和static、private、final或native并列。

三、 final用法
final关键字表示的不可变的。一个类不希望被其它类继承,可以使用final,Java中的String类就是一个final类。
public final class Penguin extends Pet {
//…
}

方法不希望被重写,可以使用final,final修饰的方法表示此方法已经是“最后的、最终的”含义,即父类的final方法是不能被子类所覆盖的,也就是说子类是不能够存在和父类一模一样的方法的。
public final void print () {
//…
}

属性不希望被修改,可以使用final:
public class Penguin {
final String home =“南极”;// 居住地
public void setHome(String name){
this.home=home; //错误,不可再赋值
}
}

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

猫七姑娘没有猫

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值