相同点:
1.不能实例化(通常把用类创建对象的过程称为实例化,比如Student stu = new Student();)
2.可以将抽象类和接口类型作为引用对象
3.一个类要是继承了个抽象类或者实现了个接口,都得将其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。
不同点:
1.抽象类中可以定义构造器。接口中不行
2.抽象类中可以有抽象方法,也可以有具体方法。接口中只能有抽象方法。
3.抽象类中接口的成员全是public的,接口中抽象类的可以是public、protected和default
4.有抽象方法的类必须声明为抽象类,而抽象类未必有抽象方法
5.抽象类中可以有静态方法。接口中不能有。
6.一个类只能继承一个抽象类。而一个类可以实现多个接口。
什么时候用接口?什么时候用抽象类?
抽象类更重点描述的是抽象的概念,顾名思义,就是很抽象描述不出来。比如动物是个概念,但是你描述不了动物是个啥。
而接口更重点描述的是共有的特征,比如鸟、老鹰都会飞,飞就是他们共有的特征。
Java接口和抽象类有什么区别
文章对比了抽象类和接口在Java中的特点,包括它们的相同点如不能实例化、可作为引用对象等,以及不同点如构造器的存在、方法的定义和访问修饰符等。同时指出,抽象类用于描述抽象概念,而接口强调共有特征。一个类可继承一个抽象类但能实现多个接口,这决定了在设计时应根据需要实现单一继承或多态性来选择使用抽象类还是接口。

被折叠的 条评论
为什么被折叠?



