java 笔记(4)接口

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

分析:

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

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

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

时间: 2024-10-21 13:16:22

java 笔记(4)接口的相关文章

9.3-全栈Java笔记:List接口常用实现类的特点和底层实现

上节我们讲到「List接口的特点和常用方法」,本节接着上节的内容继续深入学习. 课前回顾:  List接口常用的实现类有3个:ArrayList.LinkedList.Vector. 那么它们的特点和底层实现有哪些呢? ArrayList特点和底层实现 ArrayList底层是用数组实现的存储. 特点:查询效率高,增删效率低,线程不安全.我们一般使用它. 查看源码,我们可以看出ArrayList底层使用Object数组来存储元素数据.所有的方法,都围绕这个核心的Object数组来开展. Arra

9.4-全栈Java笔记:Map接口和实现类

现实生活中,我们经常需要成对存储某些信息.比如,我们使用的微信,一个手机号只能对应一个微信账户.这就是一种成对存储的关系. Map就是用来存储"键(key)-值(value) 对".  Map类中存储的"键值对"通过键来标识,所以"键对象"不能重复. Map 接口的实现类有: HashMap.TreeMap.HashTable.Properties等. 常用的方法: 方法 说明 Object   put(Object key, Object va

9.5-全栈Java笔记:Map接口中的实现类HashMap

上节聊到「Map接口和实现类」,今天我们深入探讨其实现类中的HashMap如何进行底层实现. Hashmap基本结构讲解 哈希表的基本结构就是"数组+链表".我们打开HashMap源码,发现有如下两个核心内容: public class   HashMap<K,V> extends   AbstractMap<K,V> implements   Map<K,V>, Cloneable, Serializable { /** * The default

JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式

/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person("fish7"); p.setIsay(new BeforeGong()); p.say(); p.setIsay(new AfterGong()); p.say(); } } class Person{ //只有在运行期才和say行为关联起来,这就叫面向接口编程 private String

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

java笔记--用ThreadLocal管理线程,Callable&lt;V&gt;接口实现有返回值的线程

用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程 ThreadLocal在我的笔记"关于线程同步"的第5种方式里面有介绍,这里就不多说了. --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3899890.html  "谢谢-- Callable<V>接口类似于Runnable,两者都是为了哪些其实例可能被另一个线程执行的类设计的, 但是Runnable不会返回

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

Java学习笔记_21_Collection接口

21.Collection接口: 1>容器类的添加.删除: · add(Object o) :将对象添加到集合. · Remove(Object o) :删除集合中与o相匹配的对象. 2>容器中类的查询: · Size(): 返回集合中元素的个数. · isEmpty(): 判断集合中是否包含元素. · contains(Object o): 判断集合中是否包含指定元素. · iterator(): 返回集合的一个迭代器,用来访问该集合的元素. · contains(Collection c)

5.5-全栈Java笔记:接口的定义和使用

接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比"抽象类"还"抽象"的"抽象类",可以更加规范的对子类进行约束.全面地专业地实现了:规范和具体实现的分离. 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法.接口是完全面向规范的,规定了一批类具有的公共方法规范. 从接口的实现者角度看,接口定义了可以向外部提供的服务. 从接口的调用者角度看,接口定义了实现者能提供那些服务. 接口是两个模块之

9.8-全栈Java笔记:Iterator(迭代器)接口

迭代器介绍 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象. Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作. Iterator接口定义了如下方法: boolean hasNext();  //判断是否有元素没有被遍历 Object next();      //返回游标当前位置的元素并将游标移动到下一个位置 void remove(); //删除游标左面的元素,在执行完next之后该操作只能执行一次 图1