A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 等风来_________ 中级黑马   /  2014-3-16 21:04  /  564 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向抽象编程:所有的对象所属的类都应该尽可能由抽象类或接口而来。

接口的解释:
1,接口是一个契约(合同),体现在接口的名称上。
2,接口是一种能力,体现在接口的方法上。相当于合同中的某个具体的条款。
*接口本身和继承没有关系的。
*接口是一种约定。
实现了某个接口的类,也就应该具有这个接口所应该是具有某种能力。

接口的例子(jdk源代码):
public interface Comparator<T> {        //契约的名字
    int compare(T o1, T o2);                //契约的条款1
    boolean equals(Object obj);                //契约的条款2
}

interface关键字
在软件开发领域所谓“接口”有两个含义(虚拟接口)。
1,指的是面向对象开发语言中特有的特殊的抽象类。即interface。
2,指的是所有的开发语言中,对库或包对外暴露的可以访问的方法或属性。例子:API(application Programing Interface)
*USB接口和上面的两类接口都不一样,是实体接口。

接口的特性:
1,接口不可以被实例化。
2,实现类必须实现接口中的所有的方法,抽象类除外。
3,实现类可以实现多个接口。
4,接口中的变量都是静态常量。       
        在接口中声明的变量都是默认被public static final修饰的。       
        在接口中声明的方法都是默认被public abstract修饰。
5,接口也支持多态调用,接口的多态叫接口多态,继承的多态叫继承多态。

接口在面向对象中的定位:
1,接口是一个契约(合同)
2,接口是一种标准,符合这种标准的类必须实现这个接口,接口的名字保证了这个标准。
3,接口代表一种能力,接口的方法体现了这种能力。

接口中声明的方法默认为public
接口中声明的变量默认为public static final

例子:小汽车要想在欧洲销售必需符合欧IV标准。
public interface e4{
        public void paifan();
}
public class A3Car implements e4{
        public void paifan(){
                ...
        }
}

面向抽象编程:所有的类都应该继承或实现一个抽象类或一个接口。也就是说,应用程序的系统是建立抽象基础上的。

Java接口与C#接口对比
                Java接口        C#接口
定义                interface        interface
实现                implements        :
继承                extends                :
静态成员        常量                无
public                可以显示使用        不能显示使用


打印机与墨盒及打印纸使用接口的例子:
public interface InkBox {
        public String getColor();
}

public interface Paper {
        public String getSize();
}

public class Printer  {       
        public void print(InkBox inkBox,Paper paper){
                System.out.println("使用"+inkBox.getColor()+"墨盒在"+paper.getSize()+"纸张上打印。");
        }
}
public class ColorInkBox implements InkBox {
        public String getColor() {
                return "彩色";
        }
}
public class A4Paper implements Paper {
        public String getSize() {
                return "A4";
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马