zoukankan      html  css  js  c++  java
  • 8.接口

    接口是抽象类的延伸,可以将它看作是存粹的抽象类,接口中的所有方法都没有方法体。接口的方法默认就是public abstract,变量默认就是public static final,可以将draw()方法封装到一个接口中,使需要draw()方法 的类实现这个接口,同时也继承图形类,这就是接口存在的必要性。
    接口使用interface关键字进行定义:
    public interface drawTes{
    void draw()//接口内的方法,省略abstract关键字
    }
    一个类实现一个接口可以使用Implements关键字,在接口中定义的方法必须被定义为Public或abstract形式,其他修饰符不被Java编译器认可,即使不声明为public形式,他也是Public。
    在接口中定义的任何字段都自动是static和final的。
    interface drawTest{
    public void draw();
    }
    class 平行四边形 extends 四边形 implements drawTest{
    pubLi void draw(){     //由于该类实现了接口,所以需要覆盖draw()方法
    System.out.println("平行四边形.draw()");
    }
    void doAnything(){
    //dosomething
    }
    }
    class 正方形 extends 四边形 implements drawTest{
    pubLi void draw(){     //由于该类实现了接口,所以需要覆盖draw()方法
    System.out.println("正方形.draw()");
    }
    void doAnyThing(){
    //something
    }
    }
    public class 四边形{ //something  }
     
    接口的统一标准
    interface USB {
    public void intall();// 加载驱动
     
    public void work();// 工作
    }
     
    class Computer {
    public void plugin(USB usb) {//接收统一的USB对象
    usb.intall();
    usb.work();
    }
     
    }
     
    class Phone implements USB {  //实现接口
     
    @Override
    public void intall() {
    // TODO Auto-generated method stub
    System.out.println("安装手机驱动.....");
     
    }
     
    @Override
    public void work() {
    // TODO Auto-generated method stub
    System.out.println("手机成功连接电脑!");
    }
     
    }
     
    class Print implements USB {
     
    @Override
    public void intall() {
    // TODO Auto-generated method stub
    System.out.println("打印机驱动正在导入....");
    }
     
    @Override
    public void work() {
    // TODO Auto-generated method stub
    System.out.println("打印机已成功连接电脑!!!");
    }
     
    }
     
    public class Test {
    public static void main(String[] args) {
     
    Computer computer = new Computer();
    computer.plugin(new Phone());//向上转传入子类对象
    computer.plugin(new Print());
    }
    }
  • 相关阅读:
    【转载】关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题
    LeetCode: 【L4】N-Queens 解题报告
    【转载】在美国找工作秘籍
    Lintcode: Kth Largest Element 解题报告
    LeetCode: Reverse Integer 解题报告
    Lintcode: First Bad Version 解题报告
    九章面试题:Find first K frequency numbers 解题报告
    tomcat之虚拟目录
    百度搜索结果如何屏蔽百家号内容
    CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹
  • 原文地址:https://www.cnblogs.com/cainame/p/10091982.html
Copyright © 2011-2022 走看看