抽象类(abstract) 与 接口(interface)的区别?你又知道多少?

目录

抽象类的语法规则:

抽象类的作用:

接口的语法规则:

抽象类和接口的区别:


抽象类的语法规则:

1.当方法面前面加上关键字 abstract 时,表示该方法是一个抽象方法.

2.抽象方法没有方法体(没有{ },不能执行具体的代码)

3.包含抽象方法的类,必须使用 abstract 关键字修饰,表示这是一个抽象类

4.抽象类不能实例化(也就是不能new)

5.抽象方法是不能用关键字 private 和 final 修饰的

6.抽象类中是可以包含其他的非抽象方法的,也可以包含字段,这个非抽象方法和普通的方法的

规则是一样的,可以被重写,也可以被子类直接调用

7.抽象类主要是用来被继承的

8.如果一个类继承了抽象类,那么这个类就必须重写抽象类里的抽象方法

9.抽象类可以继承抽象类,例如抽象类B 继承了抽象类A ,那么抽象类B可以不重写抽象类A中的抽象方法,但是当普通类C 继承了抽象类B,那么还是要重写抽象类B以及抽象类A中的抽象方法的.

下面是代码示例:

抽象类的作用:

抽象类存在的最大意义就是为了被继承;抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类,然后让子类重写抽象类中的抽象方法;当我们不小心实例化了抽象类,编译器就会报错;所以使用抽象类相当于多了一重编译器的校验,让我们在编程的时候能尽早发现问题.

接口的语法规则:

1.使用interface定义一个接口

2.接口里的成员方法是默认被 public abstract 修饰;因为接口里的方法一定是抽象方法,因此可以省略 abstract;因为接口里的方法一定是public,因此也可以省略public

3.接口当中定义的成员变量默认是被 public static final 修饰的;所以接口定义的成员变量默认是静态常量

4.接口中其实可以有具体的实现方法(JDK1.8加入的),一般不这样用

5.接口不可以被实例化

6.接口和类之间的关系:implement(实现)

7.为了解决Java单继承问题,类可以实现多个接口,也能达成多继承的效果

8.只要类实现了该接口,那么就可以进行向上转型

9.接口可以继承另一个接口,使用extends关键字

接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含静态常量.

抽象类和接口的区别:

抽象类接口区别
普通字段+抽象方法抽象方法+静态常量结构组成
使用extends关键字继承抽象类使用implements关键字实现接口子类如何使用
一个抽象类可以实现若干个接口接口不能继承抽象类,但是接口可以使用extends继承多个父接口关系
一个子类只能继承一个抽象类一个子类可以实现多个接口子类限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值