面试时必问题:接口和抽象类 有什么区别??
来源:互联网 发布:类似snapchat的软件 编辑:程序博客网 时间:2024/06/05 10:33
发现面试的时候最常问的就是接口和抽象类有什么区别??
对于接口和抽象类中有些方法是需要覆盖的
第一个方面:定义方面
定义一个接口中的方法时,其访问控制修饰符只能是public或者是没有,如果没有修饰符也是默认的是public。如果用其它访问控制修饰符会有错误
public interface IManager{ String E = "DD"; void getS(); void getN(); // private void getN();//error 方法默认是public,不能使用其他访问控制修饰符 }
在定义接口方法时不需要方法体。
但是在抽象类中,只有抽象方法不需要方法体,非抽象方法必须要有方法体。
public abstract class MAbs{ public static final String E = "DD"; public abstract void getT(); public void getW{ } void getW(){ } }
第二个方面:用法方面
抽象类也属于类,所以类就只能被单继承,继承类使用extends关键字。
而接口却可以多实现,利用implements关键字,各接口之间用逗号隔开
public class R extends MAbs implements IManager,IRead{}
在extends抽象类后需要覆写抽象类中的所有抽象方法,需要覆写implements接口中的所有方法
public class R extends MAbs implements IManager,IRead{ @Override public void getS() { } @Override public void getN() { } @Override public void getT() { } }
1,接口 中定义的方法访问权限默认为public,所以实现该接口的方法时访问控制修饰符必须为public,不能省略。
子类覆写父类方法时访问权限必须要 大于父类。
2,可以通过匿名内部类的方式使用接口,但抽象类不行
IManager m = new IManager() { @Override public void getS() { } @Override public void getN() { } }; //MAbs s = new MAbs()//error0 0
- 面试时必问题:接口和抽象类 有什么区别??
- 接口和抽象类有什么区别?
- 接口和抽象类有什么区别
- 抽象类和接口有什么区别
- 接口和抽象类有什么区别
- 抽象类和接口有什么区别?
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- 接口和抽象类有什么区别
- linux 下多线程epoll编程 -socket
- JavaEE_Mybatis_SpringMVC_框架整合_lesson1_简单的SSM框架搭建_使用原始Dao开发方式进行测试
- android典型代码系列(十四)------子线程中弹出土司的方法
- angular input 默认值
- HTTP协议详解
- 面试时必问题:接口和抽象类 有什么区别??
- 什么是Socket
- Html - TextArea - auto sizing to avoid scrollbar
- MySQL数据库性能优化之存储引擎选择
- 从程序员到CTO的Java技术路线图
- String的substring和subSequence的区别
- .NET学习(五)数据控件的使用
- const char*, char const*, char*const的区别
- android典型代码系列(十五)------字节转KB_MB_GB方法