抽象类和接口对比(迁移)

类目方法成员变量构造方法
抽象类无限制无限制子类通过调用构造方法链调用构造方法,抽象类不能用new操作符实例化
接口public abstractpublic abstract无构造方法,不能用new实例化。

抽象类:

1,抽象类不能用new来创造他的实例(在子类的构造方法中实例化),但是可以作为一种数据类型。下边是正确的(假设A是抽象类):

A[] a=new a[10];

2,抽象类中可以没有抽象方法,但是有抽象方法该类一定是抽象类。

3,子类可以覆盖父类的抽象方法,并将它定义为abstract(但是很少用,一般在都实现了这种方法,但是他在当父亲的方法实现在子类变的无效时是很有用的,此时必须用他)。

4,即使子类的父亲是具体的,子类也可以是抽象的(如A与Object);

5,抽象类中的方法是非静态的,构造方法定义为抽象protected(因为他只能被子类使用);

compare 变量 构造方法 方法
抽象类 无限制 子类通过调用构造方法链调用构造方法,抽象类不能用new操作符实例化 无限制
接口 所有的变量为public static final 无构造方法,不能用new实例化。 public abstract
             一个类可以继承多个接口(implements),但是只能继承一个类,接口可以继承接口,但是接口不能继承类;

接口:

1,接口是对功能的拓展,它的目的是指明相关或者不相关类的多个对象的共同行为。

2,接口中只有常量和抽象方法。// 接口中只有的方法全是abstract。

3,接口可以继承接口(用extends)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值