Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

接口 #5

Open
SillyBoy007 opened this issue Mar 25, 2018 · 0 comments
Open

接口 #5

SillyBoy007 opened this issue Mar 25, 2018 · 0 comments

Comments

@SillyBoy007
Copy link
Owner

1.基本概念

如果一个类之中只是有抽象方法和全局常量组成,通常定义成接口,接口属于特殊的抽象类,这个类中只有抽象方法和全局常量,没有构造。

2.接口的使用

1.接口不能直接用new实例化
2.接口必须要有子类(此时以一个子类可以使用inplements实现多个接口)
3.接口的子类如果不是抽象类,必须复写接口中的全部抽象方法
4.接口的对象可以利用子类对象的向上转型实现实例化
5.子类又要继承又要接口,先继承
6.接口中只能使用public访问权限(可以省略)

接口和抽象类对比
相同点:
1.都是上层的抽象层
2.都不能被实例化,依靠向上转型实例化
3.都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现
不同点:
1.一个抽象类只能继承一个抽象类(单继承),一个接口能继承多个接口(接口多继承)
2.一个子类只能继承一个抽象类,但可以实现多个接口
3.在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。
4.抽象类可以使用多个权限,接口只能是public

注意点
1.接口的主要为了解决单继承局限问题
2.接口内部结构可以定义普通内部类,抽象内部类,内部接口
3.一个接口如果用了static定义一个内部接口,表示是一个外部接口

接口的核心作用:
1.定义操作标准
2.表示一种操作能力
3.表示将于服务端的远程方法视图暴露给客户端.

总结:
自己写的接口,尽量不要用new直接实例化接口,使用工厂函数实例化接口
接口作为标准用于解耦合以及不同层之间的桥梁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant