zoukankan      html  css  js  c++  java
  • java 笔记(5)接口,static

    interface USB{
        void start();
        void stop();
    }
    
    class C{
        public static void work(USB u){
            u.start();
            System.out.println("工作中");
            u.stop();
        }
    }
    
    class USBDisk implements USB{
    
        @Override
        public void start() {
            System.out.println("U盘开始工作");
        }
    
        @Override
        public void stop() {
            System.out.println("U盘停止工作");
        }
        
    }
    
    class Printer implements USB{
    
        @Override
        public void start() {
            System.out.println("打印机开始工作");
        }
    
        @Override
        public void stop() {
            System.out.println("打印机停止工作");
        }
        
    }
    
    public class AbsDemo01 {
    
        public static void main(String[] args) {
            C.work(new USBDisk());
         C.work(new Printer());
        }    
    }

    结果:

    U盘开始工作
    工作中
    U盘停止工作
    打印机开始工作
    工作中
    打印机停止工作

    分析:

    1、在接口中,有两个抽象的方法,void start()和void stop()。其实在这两个抽象方法中,前面public abstract被省略了。

    2、在类 C中,创建了一个work类方法。而在main()方法中,又用到了C.word(new USBDisk())和C.word(new Printer())。在这里直接用类名.方法名进行调用方法,用到了static关键字的知识。使用static修饰的类叫做类方法,类方法可以由类名直接调用,也可由实例对象进行调用。(建议用类名直接调用,因为可以直接省略了用new实例化的步骤,更简洁,更方便)

         (1)使用static声明的属性,被称为全局属性

         (2)使用static声明的方法,可以直接通过类名调用

         (3)使用static方法的时候,只能访问static声明的属性和方法,而非static声明的属性和方法是不能访问的。

    3、在main()方法中,C.work(new USBDisk)进行传送参数时, 用到了父类声明和子类实例化的知识。我们可以这样来理解:USB u = new USBDisk声明部分为接口,赋值部分为实现类的这个对象u,在调用重写的抽象方法时,是调用实现类的方法

  • 相关阅读:
    条形码识别
    使用边缘检测,将图像旋转到水平位置
    pyzbar 安装
    关于跑别人代码中遇到的问题
    %matplotlib inline
    git 相关流程和报错解决
    原码、反码和补码
    opencv 图像resize
    前端跨域解决方案汇总
    vuecli3 引入构建版本的2种方式
  • 原文地址:https://www.cnblogs.com/Timenow/p/6848468.html
Copyright © 2011-2022 走看看