程序小白天天打卡(面向接口)

xiaoxiao2021-02-28  48

2018/2/18

1.对于面向接口和面向对象的区别

首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。

2.接口的本质和意义

接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承)

接口是一组规则的集合,规定了实现本接口的类和接口必须拥有的一组规则,体现了自然界“若果你是......则必须能....”的理念

例如,在自然界中,人都能吃饭,即“如果你是人,则必须能吃饭”。那么模拟到计算机程序中,就应该有一个IPerson(习惯上,接口名由“I”开头)接口,并有一个方法叫Eat(),然后我们规定,每一个表示“人”的类,必须实现IPerson接口,这就模拟了自然界“如果你是人,则必须能吃饭”这条规则。

面向对象思想的核心之一,就是模拟真实世界,把真实世界中的事物抽象成类,整个程序靠各个类的实例互相通信、互相协作完成系统功能,这非常符合真实世界的运行状况,也是面向对象思想的精髓。

3.简单代码的实现(打印机)

/*将墨盒和纸张定义为接口*/

package Package3.iface; /*墨盒接口 * 获得墨盒的颜色*/ public interface IInkBox { public String getColor(); } package Package3.iface; /*纸张接口 * 定义获得纸张的大小尺寸*/ public interface Ipaper { String getSize();//获得纸张的尺寸 } package package4; import Package3.iface.A4Paperimpl; import Package3.iface.blackInkBoximpl; import Package3.iface.colorInkBoximpl; public class printerText { public static void main(String[] args) { Printer printer=new Printer(); //为打印机安装纸张和墨盒 printer.setInkbox(new blackInkBoximpl()); printer.setPaper(new A4Paperimpl()); printer.print("测试内容"); } } package Package3.iface; /*实现彩色墨盒的实现类*/ public class colorInkBoximpl implements IInkBox//对接口的使用 { @Override public String getColor() { // TODO Auto-generated method stub return "彩色"; } } package Package3.iface; public class blackInkBoximpl implements IInkBox { @Override public String getColor() { // TODO Auto-generated method stub return "黑白"; } } package Package3.iface; public class A4Paperimpl implements Ipaper { @Override public String getSize() { // TODO Auto-generated method stub return "A4"; } }
转载请注明原文地址: https://www.6miu.com/read-2619097.html

最新回复(0)