面向对象接口

175 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

1.接口

  • 属性都是public static final修饰
  • 属性全都是全局(公共)静态常量
  • 方法都是public abstract修饰
  • 方法都是全局(公共)抽象方法

2.接口的特点:

  1. 接口不可以被实例化
  2. 实现类必须实现接口的所有方法
  3. 实现类可以实现多个接口
  4. 接口中的属性都是公共静态常量
  5. 接口中的方法都是公共抽象方法

3.接口的语法:

public interface MyInterface{

public abstract void foo();

//其他方法

}

4.接口有比抽象类更好的特性:

  1. 可以被多实现
  2. 设计和实现完全分离
  3. 更自然的使用多态
  4. 更容易搭建程序框架
  5. 更容易更换实现

5.面向接口编程:程序设计时面向接口的约定而不考虑具体实现

6.抽象类vs接口 相同点:

  1. 代表系统的抽象层
  2. 都不能被实例化
  3. 都能包含抽象方法
  4. 用于描述系统提供的服务 , 不必提供具体实现 不相同点:
  • 在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
  • 抽象类便于代码复用,接口便于代码维护
  • 一个类只能继承一个直接的父类,但可以实现多个接口

7.面向对象设计原则

  1. 多用组合,少用继承
  2. 针对接口编程
  3. 针对扩展开放,针对改变关闭

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.普通手机和智能手机的功能区别

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png