Java抽象类和接口的定义及其区别

一.抽象类(abstract)

1.abstract修饰的类叫做抽象类,抽象类一定是父类,抽象类不能做子类。
2.抽象类不能实例化,但是有构造方法
3.abstract修饰的方法叫做抽象方法,抽象方法不带方法体,不用在抽象类当中实现,子类必须重写实现父类的抽象方法
4.abstract抽象类和抽象方法不能实例化 ,用在多态上面。
5.抽象方法只能使用在抽象类当中,普通类当中不能使用抽象方法。
6.abstract和final不能同时使用,final修饰方法不能被重写 final修饰类不能被继承。
7.abstract和private修饰符是冲突的,private修饰的东西子类得不到。
8.抽象方法也不能使用static修饰,static修饰东西属于类。

public abstract class Man {
    public abstract void eat();
}

二.接口(interface)

1.在java当中类不能实现多继承,但子类可以继承多个接口,子类继承接口那么必须实现接口当中的方法
2.接口是对行为的定义。
3.接口当中的方法(行为)都是抽象方法。
4.接口当中不能有成员变量
5.接口当中不能有构造方法,不能创建对象,接口不能实例化,接口可以多态
6.接口和接口接口之间是可以继承的

public interface Animal {
    public void show();
}

子类用implements继承接口:

public class Person implements Comparable{}

三.两者的区别

1.抽象类是对类的一种抽象,本身是一种设计模板,接口是对行为的抽象是一种应为规范。
2.抽象是用来提取子类当中的共性代码,接口重点用于隐藏和封装。
3.接口的方法默认是public,所有方法都是抽象方法,在接口中不能有方法的实现(Java 8 开始接口方法可以有默认实现),抽象类可以有非抽象的方法
4.一个类可以实现多个接口,但最多只能继承一个抽象类。
5.一个类实现接口的话要实现接口的所有方法,而抽象类不一定(因为抽象类当中可以用非抽象的方法)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值