参数包括基本类型和引用类型,基本类型没什么好说的,今天我们要说的是引用类型,第三篇文章说的是接口作为参数。
我们先定义一个Hobby接口并在里面声明一个hobby方法。
interface Hobby{
public abstract void hobby();
}
我们再定义一个 HobbyDemo类并在里面定义一个hobbyDemo 方法,参数为Hobby接口:
class HobbyDemo{
public void hobbyDemo(Hobby h){
h.hobby();
}
}
同上文, 看到这,有木有觉得有一点奇怪,怎么可能调用接口的抽象方法?必须报错。
然而并没有报错,为什么呢?
因为接口调方法一定是由实现类实现,因此这样写没问题,
只是你现在用不了,因为接口没有对应的实现类。
现在我们就写一个接口的实现类HobbyImpl:
class HobbyImpl implements Hobby{
public void hobby() {
System.out.println("Coding.");
};
}
最后我们在main中调用:
new HobbyDemo().hobbyDemo(new HobbyImpl());
输出:
Coding.
小结:引用类型参数是接口时,关键在于实现该接口的实现类。