首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问关于抽象类的两个有关问题

2013-10-02 
请教关于抽象类的两个问题请教关于抽象类的两个问题:1.抽象类中的非抽象方法可以调用抽象方法吗?例如:下面

请教关于抽象类的两个问题
请教关于抽象类的两个问题:
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就一个版本好不好?
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

1, 可以。
2,method1就一个版本好不好?

method1()应该是两个版本吧?父类一个,子类一个.


父类那个不算,没有实现怎么调用?

那您帮我解释一下什么时候有两个版本?是不是要当父类声明为private,并是个已经实现的方法,子类重新定义一个相同签名的方法的时候,才是两个版本,要调用父类的时候要用super。

不能是private,除了private都可以,一旦什么private,对子类不可见了,自然不能用super

热点排行