Java接口和抽象类以及接口的意义
Posted CieloSun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java接口和抽象类以及接口的意义相关的知识,希望对你有一定的参考价值。
接口interface:
1. 在接口中没有变量,成员无论如何定义,都是公共常量,public static final即使不显式声明也如此。
2. 所有接口方法均隐含public abstract即使不显式声明也如此。(因而也不能使用protected和private修饰,不加修饰也不是默认权限)
3. 接口可以继承其他接口但是不能继承类,不能设计父接口中的方法,不能实现别的接口。
4. 任何类都可以引用接口,并对其中的方法进行自类中的实现。
抽象类abstract class:
1. 变量和方法均可定义权限,和普通类一样。
2. 抽象类只能有一个继承的父类但是可以implement很多接口和普通类一样。
3. 子类可以继承抽象类和普通类一样。换言之,抽象类不过是能够使用抽象方法的普通类。
看到这里,相信大家都在思考,既然接口本身不能实现任何功能且只能提供一些常量,那么接口有什么意义呢?
笔者看来接口更像是对上层的文档一样,在Java Web的中间层开发中,往往会提供接口-实现这样的开发模式,在接口类不改动的情况下,任意的改变实现是对其他层没有影响的,只要接口不改则其他层不需要改,接口起到的更像是一个API文档的作用。这样降低了应用的耦合度,增强了程序的可扩展性。
当需要检查我们的对象都使用了哪些接口,继承了哪些类时,可以用instanceof进行检查,instanceof看起来像是一个函数名,但实际上是一个操作符,使用方法类似:
Son son=new Son();
if(son isntanceof Father){
}
符号左边是一个对象,右边是一个类名,可以检查是否具有继承关系以及implement实现关系,中文翻译可以是:可以视作。
运用这个运算符,我们可以更好的整理好我们的继承多态结构,也可以更好的使用一些多态功能。
以上是关于Java接口和抽象类以及接口的意义的主要内容,如果未能解决你的问题,请参考以下文章
Java面试_君哥讲解笔记_java面向对象_3抽象类和接口有什么区别接口是否可以继承接口private修饰的方法可以通过反射访问,那么private的意义是什么_ java类的初始化/执行顺序