Java的抽象类和接口

在继承的层次结构中,每个新子类都使类变得越来越明确具体。如果从子类追溯到父类,类会变得更通用,更不明确。父类的设计应该包含子类的共同特征。如果一个父类设计地非常抽象以至于它没有任何具体的实例,那它就叫抽象类。

抽象类

抽象方法:通过abstract关键符修饰的方法。(只有方法头,没有方法体,要求在派生类中被重写)

public abstract void getArea()

包含抽象方法的类会自动变成抽象类。
如果方法没有在派生类中被重写,那么编译器会报错。
抽象方法被用来确保派生类会实现这个方法。

抽象类可以含零至多个普通方法、抽象方法,不允许被实例化(不能去定义一个常量)
若父类是抽象类,子类不想成为抽象类,则子类必须将父类中所有的抽象方法重写为带方法体的普通方法。

接口

public interface 接口名称{
	(方法头...}

接口中所有方法都是public,抽象方法
一个类可以实现一个或多个接口
接口中所有属性为:public,final,static
会自动变final,给初始值

implement关键字
一个类只能从一个基类派生
Java允许一个类实现多个接口
实现多接口,使用关键字,写上接口名:

public class Myclass implements interface1,interface2,interface3...

继承接口:接口之间继承,只能继承接口,不能继承类

抽象类和接口的比较

比较点抽象类接口
关键字abstract classinterface
字段无限制必须是public、static、和final的
方法既可以包含普通方法,也可以含抽象方法只能含抽象方法,且必须是public的
继承/实现只能被类或抽象类继承既可以被接口继承,也可以被类或抽象类实现
多重继承不支持可以继承多个父接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值