Java中,子类如何调用抽象父类的非抽象(普通)方法?抽象类的构造方法有什么用?
抽象类是无法用new来实例化的,但是可以通过其他途径来实例化:子类在自己构造方法中可以利用抽象父类的构造方法“构造”一个抽象父类的实例对象,进而在子类的方法中调用抽象父类的普通非抽象方法。示例代码如下:
public class test //测试
{
public static void main(String[] args)
{
TimesTwo t = new TimesTwo();
int m = t.multiply(2);
System.out.println(m); //输出4
}
}
abstract class Product { //抽象父类
int multiplyBy;
public Product( int multiplyBy ) {
this.multiplyBy = multiplyBy;
}
public int multiply(int val) { //抽象父类的非抽象方法
return multiplyBy * val;
}
}
class TimesTwo extends Product { //继承抽象父类的子类
public TimesTwo() {
super(2); //在子类中构造一个父类实例
}
public int multiply(int val)
{
return super.multiply(val); //调用抽象父类的非抽象方法
}
}