java中的抽象类和接口

抽象类

1、抽象类只能作为其他类的基类,它不能直接被实例化,而且对抽象类不能用new操作符,抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类的实力的引用;

2、抽象类允许包含抽象成员,但这不是必须的(可以允许一个抽象类中没有任何抽象成员),抽象类中可以有非抽象方法;

3、抽象类不能是final类,因为抽象类总是希望被继承,final类又严格禁止继承;

4、如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员;

5、抽象类可以被抽象类所继承,结果仍是抽象类;

6、抽象类允许被声明。

接口

1、接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法必须都是public类型的,确保外部使用者能访问它们;

2、接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象方法;

3、接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有static变量;

4、接口中的变量是所有实现类共有的,是不变的,所以变量是final类型的。

接口对修改关闭,对扩展开放。所以接口的方法是public abstract,接口的属性是public static final常量,且必须赋初值。

注意:final和abstract不能同时出现。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值