Head first java 第八章使用接口

JAVA的接口

Pet
abstract void beFriendly();
abstract void play();

所有接口的方法都是抽象的,所有任何实现pet的接口的类都必须要实现这些方法。

接口的定义:
public interface Pet{…}
使用“interface” 来取代“class”

接口的实现:
public class Dog extends Canine implements Pet{…}
使用"implements"这个关键字。注意实现interface时还必须在某个类的继承之下。

设计与实现Pet接口

public interface Pet{
	 abstract void beFriendly();		//接口的方法一定时抽象的,所以必须以分号结束。记住它们没有内容!
	 abstract void play();
	}

public class Dog extends Canine implements Pet{			//implements关键词后面跟着接口的名称
	public void beFriendly(){.....}
	public void play(){....}			//必须实现出Pet的方法,这是合约规定

	public void roam(){....}
	public void eat(){...}			//一般的覆盖方法
	}

类还可以实现多个接口
	public class Dog extends Animal implements Pet,Saveable,paintable{...}

如何判断应该时设计类、子类、抽象类或是接口呢?
1、如果新的类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。
2、只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。
3、当你需要定义一群子类的模板,又不想让程序员初始化此模板时,,设计出抽象的类给它们用。
4、如果想要定义出类可以扮演的角色,使用接口

调用父类的方法
但我们创建出一个具体的子类且必须要覆盖某个方法,但又需要执行父类的方法时可以使用super这个关键字能让你在子类中调用父类的方法。

例如:
abstract class Report{
void runReport(){
//设置报告
}
void printReport(){
//输出
}
}

class BuzzwordReport extends Report{
void runReport(){
super.runReport(); //调用父类方法
buzzwordCompliance();
printReport();
}
void buzzwordComliance(){…}
}
在子类中指定下面的命令:
super.runReport();
父类的方法就会执行

要点:
1、如果不想让某个类被初始化,就以abstract这个关键词将它标记为抽象的。
2、抽象的类可以带有抽象和非抽象的方法。
3、如果类带有抽象的方法,则此类必定标识为抽象的。
4、抽象的方法没有内容,它的声明是以分号结束的。
5、抽象的方法必须在具体的类中运行。
6、JAVA所有的类都是Object(java.lang.Object)直接或间接的子类。
7、从ArrayList《object》取出的对象只能被Object引用,不然就要用类型转换来改变。
8、Java不允许多重继承,因为那样会有致命方块的问题。
9、接口就好像是100%纯天然抽象类。
10、以interface这个关键字取代class来声明接口。
11、实现接口时要使用implement这个关键字。
12、class可以实现多个接口。
13、实现某接口的类必须实现接口所有的方法,因为这些方法都是public与abstract的。
14、要从子类调用父类的方法可以用super这个关键字来引用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值