2021.11.8 JavaSE进阶 抽象类

抽象类
抽象类:是类和类之间有共同特征,将这些具有共同特征的类
1.抽象类:类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。
类本身是不存在的,所以抽象类无法创建对象(无法实例化)。
2.抽象类属于引用数据类型。
3.语法:

[修饰符列表] abstract class 类名{
类体;
}

4.抽象类无法创建对象,无法实例化,抽象类是用来被子类继承的。
5.final和abstract不能联合使用,这两个关键字是对立的。
6.抽象类的子类可以是抽象类也可以不是抽象类。
7.抽象类虽然无法实例化,但抽象类具有构造方法,而此构造方法是供子类继承使用的。
8.抽象方法:表示没有实现的方法,没有方法体的方法。
例如:public abstract void doSome();
·抽象方法的特点:
----没有方法体,以分号结尾。
----前面修饰符列表中有abstract关键字。
9.抽象类中不一定有抽象方法,但抽象方法必须出现在抽象类中。
重要结论:一个非抽象的类继承抽象类,必须将类中的抽象方法实现了(覆盖/重写)。
例如:

abstract class Animal(){
public abstract move();
}
Bird extends Animal(){
public move(){}
}

若子类是抽象类,则父类中继承过来的抽象方法也可以不进行实现。

面向抽象编程
对于父类是抽象类,子类不是抽象类,使用多态(父类型引用指向子类型对象)

Animal a = new Bird();//(向上转型)

a.move();
编译时是Animal中的move,运行时执行的是Bird中的move.

面试题:
java语言中凡是没有方法体的方法都是抽象方法(×)
Object类中就有很多方法都没有方法体,都是以“;”结尾的,但他们都不是抽象方法,例如:
public native int hashCode();
这个方法底层调用了C++写的动态链接库程序。
前面修饰符没有abstract,有一个native,表示调用JVM本地程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值