相信有很多有经验的小伙伴们在面试中都会被问到Java抽象类与接口的理解等相关问题。是从Java多态中的特性,多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式我觉得就是对类的一个抽象,把类(事物)抽象出来,当做模板,也就是说在有很多类的时候,我们把一些相似的类的某些方法,某些成员变量抽象出来作为一个模板,让这些类更方便的去继承。所以,在抽象类中,有抽象方法也有普通方法。一个抽象类就是包含抽象方法的类(java编程思想)。
一、抽象类:
在继承抽象类的时候,子类必须得实现抽象类中的所有抽象方法,抽象类也无法去创建实例,因为里面含有抽象的方法。
public abstract class cat {
public abstract void eat();
public abstract void run();
}
二、接口
interface
接口中可以有变量和方法,接口中的变量必须是用public static final 来修饰,接口中的方法必须是抽象的,只能用public abstract来修饰。
public interface interface Egg{
//变量A
public static final A;
//抽象方法
public abstract void fun();
}
非抽象类实现了接口之后必须实现接口中的抽象方法,但是如果一个抽象类实现了接口,可以不实现接口中的抽象方法。
三、 接口和抽象类区别和使用
1. 如果拥有一些方法,并想让他们中的一些有默认的具体实现,请选择抽象类
2. 如果想实现多重继承,那么请使用接口,由于java不支持多继承,子类不能继承多个类,但一个类可以实现多个接口,因此可以使用接口来解决。
3. 基本功能在不断变化,那么就使用抽象类,如果使用接口,那么每次变更都需要相应的去改变实现该接口的所有类。
为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要入门的资料欢迎加入学习交流群:928505736
网友评论