请教关于抽象类的两个问题
请教关于抽象类的两个问题:
1.抽象类中的非抽象方法可以调用抽象方法吗?例如:下面的非抽象方法method2()可以调用抽象方法method1()吗,而且method2()不用声明为abstract。我看到有人这样用,可以运行的。
abstract class ClassOne{
//......
public abstract void method1();
void method2(){ //注意该方法没有声明为abstract,可以吗?
method1();
}
2.从上面的抽象类ClassOne继承一个具体类ClassTwo,自然ClassTwo就有了method1和method2,具体化method1后,接着使用method2,此时method2是调用哪个版本的method1?我觉得应该是ClassTwo类里面这个版本的,对吗?
class ClassTwo extends ClassOne{
//......
public void method1(){
//balabala...实现方法。
}
method2();//其中调用哪个版本的method1()?
------解决方案--------------------1, 可以。
2,method1就一个版本好不好?
------解决方案--------------------
不能是private,除了private都可以,一旦什么private,对子类不可见了,自然不能用super