抽象类

Abstract(抽象)可以修饰类、方法

进行先上抽取,只能抽取功能定义,而不抽取功能主体,具体的实现由子类覆盖完成。

抽象相当于一些概念性的东西,而子类相当于功能性的实现。


如果将一个类设置为 abstract,则此类必须被继承使用。

此类不可生成对象,必须被继承使用。


Abstract 虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。


Final 和 abstract 永远不会同时出现。 当 abstract 用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现, 实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。


private void print(){};此语句表示方法的空实现。 

Abstract void print(); 此语句表示方法的抽象,无实现。


如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。
反之,如果一个类为抽象类,那么其中可能有非抽象的方法。
如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。

 

因为当一个非抽象类继承一个抽象方法的时候,本着只有一个类中有一个抽象方 法,那么这个类必须为抽象类的原则。这个类必须为抽象类,这与此类为非抽 象冲突,所以报错。 所以子类的方法必须覆盖父类的抽象方法。方法才能够起作用。


为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此 时可将父类定义成 abstract 类。如果没有定义抽象的父类,那么编译会出现错 误。
Abstract 和 static 不能放在一起,

因为 static 不可被覆盖,而 abstract 为了生效必须被覆盖。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值