抽象类与接口

抽象类与接口:

抽象的定义:

抽象就是把多个事物的共性的内容抽取出来,
本质就是把我们关注的内容抽取出来(比如:宝马,
法拉利都是汽车,汽车就是我们抽象出来的概念)。
而汽车就是我们封装起来的一个类。

抽象类:

java可以定义没有方法体的方法
(也就是只有方法的声明,没有方法的实现),
该方法由其子类来具体的实现。 
而没有方法体的方法我们称之为抽象方法,
含有抽象方法的类我们称之为抽象类。

抽象方法的特点:

1.抽象方法用abstract来修饰。
2.抽象方法代表一种不确定的操作或行为。
3.抽象方法不能被调用。
如:public abstract void work();(大括号不能有)

抽象类的特点:

1.抽象类不能实例化。
2.抽象类代表一种抽象的对象类型。
3.抽象类用abstract来修饰。
4.一旦一个类继承了抽象类,那么这个类要么实现抽象类中的抽象方法,
要么继续继承下去。
5.可以定义一个不含抽象方法的抽象类。
(即抽象类中可以有具体方法,可以没有抽象方法)
6.在抽象类的扩展的非抽象子类中,必须实现所有的抽象方法。

接口语法:

interface 接口名{ 
     //接口名前面一般可以加上 I 表示接口
    //静态常量,抽象方法
}

接口的特点:

1.接口只能存放静态常量和抽象方法。
2.java接口是对功能的扩展。
3.通过实现接口,java可以实现多实现。
4.一个类可以继承(extends)一个父类(也只能继承一个父类),并且实现(implements)多个接口。
5.接口与接口之间可以通过使用extends来产生继承关系。

接口与抽象类的区别:

1. 抽象类与具体实现类之间是一种继承关系(is-a),也就是说如果采用抽象类的方式,则父类与子类在概念上应该是相同的。
2.  接口和实现类在概念上不要求相同,接口只是抽取相互之间没有关系的类的共同特征,而不是去关注类之间的关系,它可以使没有层次关系的类具有相同的行为,即方法。
3. 抽象类是对一组具有相同属性和行为的**逻辑上有关系**的事物的一种抽象,而接口则是对一组具有相同属性和行为的**逻辑上不相关**的事物的一种抽象。
4. 抽象类用于一组相关的事物,表示的是“is-a”的关系;而接口用于一组不相关的事物,表示的是“like-a”的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值