参数包括基本类型和引用类型,基本类型没什么好说的,今天我们要说的是引用类型,第二篇文章说的是抽象类作为参数。
我们定义一个抽象类,并在里面定义一个抽象方法:
abstract class Abst{
public abstract void abst();
}
我们在定义一个抽象Demo类,并在里面定义一个抽象Demo方法,调用抽象类的抽象方法:
class AbstDemo{
public void abstDemo(Abst a){
a.abst();
}
}
看到这,有木有觉得有一点奇怪,怎么可能调用抽象类的抽象方法?必须报错。
然而并没有报错,为什么呢?
因为抽象类调方法一定是由子类实现,因此这样写没问题,
只是你现在用不了,因为抽象类没有对应的具体类。
现在我们就写一个继承抽象类的具体类:
class SpecificAbst extends Abst{
@Override
public void abst() {
System.out.println("SpecificAbst.");
}
}
最后我们在main中调用:
public static void main(String[] args) {
new AbstDemo().abstDemo(new SpecificAbst());
}
输出:
SpecificAbst.
小结:引用类型参数是抽象类时,关键在于继承自抽象类的实现子类。