本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.概念
(1)关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。
(2)接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
2.implements和extends区别
extends, 可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。
implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
3.实现接口的注意点
(1)接口可以被多重实现(implements),抽象类只能被单一继承(extends)
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见)
4.implements实现接口实例
package com.tianmushanlu.thread; /** * 创建步骤: * 1. 自定义一个类实现Runnable接口。 * 2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。 * 3. 创建Runnable实现类对象。 * 4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。 * 5. 调用Thread对象 的start方法开启一个线程。 * * 注意: * Runnable实现类的对象并 不是一个线程对象,只不过是实现了Runnable接口的对象而已。 * 只有是Thread或者是Thread的子类才是线程对象。 * * * */ class TicketWindows implements Runnable{ Integer num = 50; @Override public void run() { while(true) { synchronized ("锁对象") { if(num > 0) { System.out.println(Thread.currentThread().getName()+"售出了第"+num+"票"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } num--; }else{ System.out.println("票以售罄..........."); break; } } } } } public class ThreadDemo2 { public static void main(String[] args) { //创建了一个Runnable实现类的对象 TicketWindows TicketWindows = new TicketWindows(); Thread thread1 = new Thread(TicketWindows,"窗口1"); Thread thread2 = new Thread(TicketWindows,"窗口2"); Thread thread3 = new Thread(TicketWindows,"窗口3"); //开启3个线程售票 thread1.start(); thread2.start(); thread3.start(); } }
以上就是implements在java中实现接口的方法,相信在经过对implements的初步了解后,大家结合之前接口的用法所学,已经能够独立使用implements实现接口了。