接口简单类:仅需具体实现!抽象类:具体实现与规范(抽象方法)皆备!
接口:纯粹规范!自身无法编写方法,专业约束!约束与实现分离:面向接口编程,接口即规范,定义是一组规则,彰显现实世界中“如何你是……”的思想。
若你愿成为天使,就必须能展翅高飞。
若你是汽车,必然能疾驰如风。
若你是好人,必当铲除恶徒;
若你是恶人,自须欺压善良之人。
接口的本质是契约,正如世间法律,一旦制定,众人遵守。
OO(面向对象)之精粹,在于对对象的抽象,而接口正是最能体现此点的存在。为何我们讨论设计模式时,总针对具备抽象能力的语言?如C++、Java、C#等,究其根本,我们所研究的是如何合理地进行抽象。
//培养并拥有抽象思维至关重要!!!
//interface定义关键字,接口必有实现类:
public interface UserService {
public static final int AGE = 18;
public abstract void add(String name);
public abstract void delete(String name);
public abstract void update(String name);
public abstract void query(String name);
}
public interface TimeService {
void time();
}
//抽象类:extends
类可以实现接口:
class UserImpl implements UserService, TimeService {
@Override
public void time() {}
@Override
public void add(String name) {}
@Override
public void delete(String name) {}
@Override
public void update(String name) {}
@Override
public void query(String name) {}
}
Java接口的作用:
- Java接口是一种约束,定义若干方法,供他人实现。
若你拥有一个员工,他们均需完成相同的工作——1→1。
-
接口中定义的方法均为public abstract,即公开抽象的。
-
所有的常量均为public static final,即公开静态最终。
-
接口不能直接实例化,其中不含构造方法。
-
通过implements可以实现对多个接口的实现。
-
实现了接口的类必须重写接口中的方法。
每日Java面试题:
sleep()方法:
方法sleep(long millis)的作用是在指定毫秒数内使当前的“正在运行的线程”暂停执行(休眠)。
如何优雅地设置睡眠时间?
JDK 1.5之后,引入了一个枚举TimeUnit,对sleep方法提供了良好的封装。比如表达小时分55秒899毫秒:
Thread.sleep(8575899L);
TimeUnit.HOURS.sleep();
TimeUnit.MINUTES.sleep();
TimeUnit.SECONDS.sleep(55);
TimeUnit.MILLISECONDS.sleep(899);
表达含义更为清晰,更优雅。
stop()方法:
执行完成后自然终止。
stop()、suspend()以及resume()均为过期作废方法,使用结果不可预测。大多数停止线程的操作使用Thread.interrupt(),即给线程打一个停止的标记,此方法不会立即终止正在运行的线程,需要加入判断才能完成线程的停止。