Java接口与继承

Java的接口是一个完全抽象的类,它允许确定方法名、参数列表、返回值类型,但不提供具体实现,使用接口,可以让代码更加规范,更易于阅读。接口的实现类则必须实现接口中定义的所有方法。
创建一个接口,需要将class关键字用interface代替,并且需要在interface关键字前添加public,使接口可被外部包访问,接口中也可以有域,但域需要是static和final的。接口的实现类则和普通类等价,可以被扩展,以下是一个例子

public interface CanSwim {
	int age=1;
	void swim();
}

public class Human implements CanSwim{
	public void swim() {}
}
public class Woman extends Human{
	public String toString() {
		return "Woman";
	}
}

一个类也可以组合一个具体类和多个接口,称作多重继承,接口名需置于implements后,并用逗号隔开

public interface CanFight {
	void fight();
}
public interface CanSwim {
	int age=1;
	void swim();
}

public class Human implements CanSwim{
	public void swim() {}
}
public class Animal {
	public void fight(){}
}

public class Woman extends Animal implements CanFight,CanSwim{
	CanSwim canswim;
	public String toString() {
		return "Woman";
	}
	
	Woman(CanSwim canswim){
		this.canswim=canswim;
	}
	public void swim() {
		this.canswim.swim();
	}
}
public class Test {
	public static void main(String[] args) {
		Woman woman= new Woman(new Human());
		woman.swim();
	}
}


Woman类组合了具体类Animal和接口CanFight、CanSwim,并且由于Animal类中已经有了fight()方法,Woman类中就不必再提供fight()方法。同时,Woman的swim使用了delegation模式,实现了内部的灵活和复用。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性,而接口是Java诸多设计模式的基石,合理运用接口可以完美地解决很多问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值