javaoop-接口

javaoop-接口

首先,我们来举一个例子:
现在我要实现下列要求:要求实现保险箱的功能。箱子有开和关的功能,锁有上锁和开锁的功能。
我们分析这个要求时会发现,保险箱是一个箱子,它有一把锁,可以将箱子和锁分别定义成抽象类。但是不能让保险箱在继承箱子的同时又继承锁。原因有两点:第一,保险箱不是锁,不符合继承中is a的关系;第二,java只支持单继承。这时就要用到接口。可以将锁定义为接口,让保险箱继承箱子,实现锁的接口。

//定义了一个锁的接口
public interface suo{
    //上锁
	public void lock();
	//开锁
	public void unlock();
}
//父类:箱子
public abstract class Xiang {
    //开箱
	public abstract void open();
	//关箱
	public abstract void close();
}
//子类:保险箱
public class BXX extends Xiang implements Suo {

	@Override
	public void lock() {
		System.out.println("保险箱已经上锁");
	}

	@Override
	public void unlock() {
		System.out.println("保险箱的锁已经打开");
	}
 
	@Override
	public void open() {
        System.out.println("保险箱打开,咔哒~~~");		
	}

	@Override
	public void close() {
		System.out.println("保险箱关闭,嘭~~~");
	}
   
}

结论

  • 接口中的属性都是静态常量,接口中的方法都是抽象方法,接口中没有构造方法。
  • 类只能继承一个父类,但可以实现多个接口。一个类如果实现了一个接口,则必须实现接口中的全部方法,否则必须将其定义为抽象类,java通过实现接口达到了多重继承的效果。
  • 接口表示一种能力,体现了接口和实现相分离的原则。
  • 抽象类利于代码复用,接口利于代码维护。
  • 通过面向接口编程,可以降低代码间的耦合性,提高代码的可扩展性和可维护性。

你可能感兴趣的:(java)