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;
    }
    }

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

  • 相关阅读:
    微信报警提示
    使用pygal图表显示网站API接口数据
    读写文本文件,乱码解决方案
    MD5加密
    将DataTable导入到SQL数据库表中
    NPOI组件操作Excel导入、导出
    二叉树由先序和中序建树
    用两个栈模拟队列
    math type白嫖教程
    IDEA常用快捷键
  • 原文地址:https://www.cnblogs.com/haizhongdenta/p/8727230.html
Copyright © 2011-2022 走看看