zoukankan      html  css  js  c++  java
  • 从向上向下转型到----抽象类接口(二)

    接口
    接口:如果一个类只是由抽象方法和全局常量组成,这种情况不会定义为一个抽象类,而是将其定义为接口.同时接口打破了抽象类子类的一个很大的问题---单继承局限.在java中,可以使用interface来定义.如:

    interface A{
    public static final String MSG="YOOTK";
    public abstract void print();
    }

    接口也必须有子类,一个子类可以使用implement关键字实现多个接口,避免单继承的局限.接口的子类,必须复写接口中的全部抽象方法.接口的对象可以利用子类对象的向上转型进行实例化操作.

    接口的实际应用-----标准

    什么是标准呢?举个例子,一个计算机定义了USB接口标准,那么使用这个USB的诸如U盘,MP3等很多设备才能根据这个接口去设计.

    interface USB{
    public void start(); //定义一个USB接口,有开始和停止两个功能
    public void stop();
    }
    class Computer{
    public void plugin(USB usb){ //定义一个计算机类调用这两个方法
    usb.start;
    usb.stop;
    }
    }
    class Flash implements USB{
    public void start(){
    System.out.print(){
    System.out.println("U盘开始使用")
    }
    ....
    }
    }
    class Print implements USB{
    public void start(){
    System.out.print(){
    System.out.println("打印机开始使用")
    } 
    ....
    }
    }
    public class Demo{
    public static void main(String args[]){
    Computer com = new Computer; //实例化计算机
    com.plugin(new Flash());    //插入USB接口
    com.plugin(new Print());    //插入USB接口
    }
    }

    接口的应用----工厂设计模式
    让客户端只看见接口而不让看见子类,但需要一个中间的工具类来取得接口对象.而我们可以通过工厂类取得接口对象

    class Factory{
    public static Fruit getInstance(String className){
    if("apple".equals(className)){
    return new Apple();
    }else if("orange".equals(className)){
    return new Orange();
    }else{
    return null;
    }
    }
    }
    
    public class Demo{
    public static void main(String args[]){
    Fruit f = Factory.getInstance("orange");
    f.eat;
    }
    }

    接口的好处显而易见,避免了单继承的局限

  • 相关阅读:
    各种算法七
    各种算法六
    使用URLConnection调用axis1.4开发的webservice
    JDBC结果集rs.next()注意事项
    URLConnection调用接口
    axis1.4开发webservice客户端(快速入门)-基于jdk1.4
    axis1.4开发webservice服务端(快速入门)-基于jdk1.4
    FMDB数据库的简单实用
    Xcode5 取消项目ARC,或者单个类ARC切换
    用CornerStone配置SVN,HTTP及svn简单使用说明
  • 原文地址:https://www.cnblogs.com/haizhongdenta/p/8727230.html
Copyright © 2011-2022 走看看