持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
1.接口
- 属性都是public static final修饰
- 属性全都是全局(公共)静态常量
- 方法都是public abstract修饰
- 方法都是全局(公共)抽象方法
2.接口的特点:
- 接口不可以被实例化
- 实现类必须实现接口的所有方法
- 实现类可以实现多个接口
- 接口中的属性都是公共静态常量
- 接口中的方法都是公共抽象方法
3.接口的语法:
public interface MyInterface{
public abstract void foo();
//其他方法
}
4.接口有比抽象类更好的特性:
- 可以被多实现
- 设计和实现完全分离
- 更自然的使用多态
- 更容易搭建程序框架
- 更容易更换实现
5.面向接口编程:程序设计时面向接口的约定而不考虑具体实现
6.抽象类vs接口 相同点:
- 代表系统的抽象层
- 都不能被实例化
- 都能包含抽象方法
- 用于描述系统提供的服务 , 不必提供具体实现 不相同点:
- 在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
- 抽象类便于代码复用,接口便于代码维护
- 一个类只能继承一个直接的父类,但可以实现多个接口
7.面向对象设计原则
- 多用组合,少用继承
- 针对接口编程
- 针对扩展开放,针对改变关闭
8.抽象类vs接口
1.接口做系统与外界交互的窗口 2.接口提供服务 3.接口本身一旦制定,就不允许随意修改 4.抽象类可以完成部分功能实现,还有部分功能可作为系统的扩展点
9.打印机
/**纸张接口
* 纸张接口 *
* @author y *
*/ package object_6; public interface Paper { /**
* A4纸 *
* @return
*/ String A4Paper(); /**
* B5纸 *
* @return
*/ String B5Paper(); } /******************************************************************* /
**墨盒接口
* 墨盒接口 *
* @author y *
*/ package object_6; public interface InkBox { /**
* 黑白墨盒 *
* @return
*/ String blackAndWhie(); /**
* 彩色墨盒 *
* @return
*/ String colour(); } /******************************************************************* /*
*打印机类
* 打印机类 *
* @author y *
*/
package object_6;
public class Printer implements InkBox,Paper{
@Override
public String A4Paper() {
// TODO Auto-generated method stub
return "A4纸";
}
@Override public
String B5Paper() {
// TODO Auto-generated method stub
return "B5纸";
}
@Override
public String blackAndWhie() {
// TODO Auto-generated method stub
return "黑白墨盒"; }
@Override
public String colour() {
// TODO Auto-generated method stub
return "彩色墨盒";
} } /******************************************************************* /*
*打印机测试类
* 打印机测试类 *
* @author y *
*/ package object_6;
public class TestPrinter {
public static void main(String[] args) {
Printer pt = new Printer();
System.out.println("使用" + pt.blackAndWhie() + "在" + pt.B5Paper() + "上打印");
System.out.println("使用" + pt.colour() + "在" + pt.B5Paper() + "上打印");
System.out.println("使用" + pt.blackAndWhie() + "在" + pt.A4Paper() + "上打印");
System.out.println("使用" + pt.colour() + "在" + pt.A4Paper() + "上打印"); } }
10.普通手机和智能手机的功能区别