问题:子类继承抽象父类的方法,子类重写全部的父类抽象方法,但是不写方法体。那子类还是抽象的么?
详细:例如 父类public abstract void a();子类写 void a(){}不写方法体 ,可以咩。。必须要实现才可以么。。。?随便写点方法体?
回答:
void a(){
}
里面 {} 就是方法体了,算是实现父类方法了。
如果写成 void a(); 这个还是抽象方法。
补充 :上一个问题结束的太快,我都无法补充了。
追问:啊哈哈哈哈哈哈哈,,,sorry。。。怪我 只要有花括号就是 实现方法了是这意思吧哈。
补充:是的,方法名后吗花括号以及它包含的内容都是方法体。
问题2:书上写如果抽象父类的子类不能实现所有抽象方法,那么子类也是抽象的。那么问题来了,如果父类有5个抽象方法,子类写了4个但是都实现了,那之类算抽象类还是普通类呢?抽象类不能用new来创建实例的话,那怎么引用抽象类?有什么类似的代码吗?
回答:
如果没有实现抽象父类的全部抽象方法,那么子类只能定义为抽象类
详细:例如 父类public abstract void a();子类写 void a(){}不写方法体 ,可以咩。。必须要实现才可以么。。。?随便写点方法体?
回答:
void a(){
}
里面 {} 就是方法体了,算是实现父类方法了。
如果写成 void a(); 这个还是抽象方法。
补充 :上一个问题结束的太快,我都无法补充了。
追问:啊哈哈哈哈哈哈哈,,,sorry。。。怪我 只要有花括号就是 实现方法了是这意思吧哈。
补充:是的,方法名后吗花括号以及它包含的内容都是方法体。
问题2:书上写如果抽象父类的子类不能实现所有抽象方法,那么子类也是抽象的。那么问题来了,如果父类有5个抽象方法,子类写了4个但是都实现了,那之类算抽象类还是普通类呢?抽象类不能用new来创建实例的话,那怎么引用抽象类?有什么类似的代码吗?
回答:
如果没有实现抽象父类的全部抽象方法,那么子类只能定义为抽象类
public abstract class Shape {
public abstract void getArea();
}
public class Circle extends Shape {
private int radius = 5;
public void getArea(){
System.out.println(Math.pi * this.radius * this.radius);
}
}
public class Test{
public static void main(String[] args){
Shape s = new Circle();
s.getArea();
}
}
版权声明:本文为shiguifen1009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。