- 对于java程序来说,如果一个类要想实现一个接口,则必须覆写接口中所有的抽象方法,如果此时接口中定义的方法过多,但是子类有用不到这么多的抽象方法,则使用起来很麻烦,所以此时就需要一个中间的过度,但是过渡类又不想被直接使用,所以将此过渡类定义为抽象类最合适,即一个接口首先被一个抽象类实现(此抽象类为适配器类),并在此抽象类中实现若干方法(方法为空),则以后的子类直接继承此抽象类,就可以覆写所需要的方法,请看以下代码:
本人新手,代码有写的不妥的地方,还请高手指点,此代码相当于抛砖引玉
//定义接口
public interface Computer {
public abstract void open();
void close();
//窗口活动
public abstract void activated();
//窗口最小化
public abstract void iconified();
//窗口恢复大小
public abstract void deiconified();
}
接着创建抽象类实现接口
public class ComputerAdapter implements Computer {
@Override
public void open() {
}
@Override
public void close() {
}
@Override
public void activated() {
}
@Override
public void iconified() {
}
@Override
public void deiconified() {
}
}
在创建类继承抽象类,这里有两个继承抽象类的类
//第一个 ComputerImpl类
public class ComputerImpl extends ComputerAdapter {
@Override
public void open() {
System.out.println("电脑打开");
}
@Override
public void close() {
System.out.println("电脑关闭");
}
}
第二个类
// 第二个 ComputerImpl11类
public class ComputerImpl11 extends ComputerAdapter {
@Override
public void activated() {
System.out.println("窗口活动");
}
@Override
public void iconified() {
System.out.println("窗口最小化");
}
@Override
public void deiconified() {
System.out.println("窗口恢复大小");
}
}
在创建一个工厂类
public class ComputerFactory {
public static Computer print(int ii){
Computer c = null;
if (ii == 0) {
c = new ComputerImpl();
} else if (ii == 1) {
c = new ComputerImpl11();
}
return c;
}
}
创建测试类
public class Test {
public static void main(String[] args) {
Computer c = ComputerFactory.print(0);
c.open();
c.close();
}
}
这时的打印结果是
电脑打开
电脑关闭
霄铭原创,侵权必究
博客主QQ:2534929974