- 文中“实现”一词特指接口的继承。
- 一个类实现多个接口时,不能出现同名的默认方法。
- 一个类既要实现接口又要继承抽象类,先继承后实现。
- 一个抽象类可以继承多个接口(implements),一个接口却不可以继承抽象类,一个接口可以用(extends)继承多个接口。
- 接口中默认方法加default,抽象方法abstract可省略,数据成员必须赋初值,final可省略。
- 接口的作用是制定标准,一个各方都需要遵守的守则。
- 为了使客户端简化(不列出所有的对象供选择),取得接口實例對象,优先采用工廠模式。
public class test1 {
public static void main(String[] args)
{ Fruit a = Factory1.getInstance("apple");
a.eat();
}}
interface Fruit
{
public void eat();
}
class Apple implements Fruit
{
public void eat()
{
System.out.println("吃苹果");
}
}
class Orange implements Fruit
{
public void eat()
{
System.out.println("吃橘子");
}
}
class Factory1 //取得fruit类的实例对象
{
public static Fruit getInstance(String classname)
{
if("apple".equals(classname))
return new Apple();
if("Orange".equals(classname))
return new Orange();
return null;
}
}
此时的程序,客户端(main方法)没有和具体的子类耦合在一起,如果有更多的Friut子类接口出现只需要修改factory类即可,所有接口对象都通过factory类取得,在开发中
只要遇到取得接口对象实例的操作都应该采用工厂设计模式。