【问题标题】:Inheritance of abstract class by another abstract and non abstract class [closed]另一个抽象和非抽象类继承抽象类[关闭]
【发布时间】:2014-03-05 04:58:47
【问题描述】:

一个抽象类被另一个抽象类和一个非抽象类扩展有什么区别吗?比如父抽象类既有抽象方法又有非抽象方法,抽象类分别由抽象类和非抽象类扩展时,实现方法有区别吗?

【问题讨论】:

  • difference在哪个方面?
  • 这个问题将被关闭,因为不清楚你在问什么。
  • 你试过了吗?如果你尝试,那么你就会知道其中的不同。
  • 例如,父抽象类既有抽象方法又有非抽象方法,抽象类分别扩展为抽象类和非抽象类,实现方法有区别吗?

标签: java inheritance abstract-class


【解决方案1】:

如果一个抽象类被另一个抽象类扩展,那么它不需要实现所有父类方法,但扩展抽象子类的第一个具体类必须实现所有父抽象类方法。

非抽象类必须实现父抽象类方法

【讨论】:

    【解决方案2】:

    我试图通过代码涵盖几个基本点。请参阅方法上方的 cmets。

    package abstractpkg;
    
    public class Test {
        public static void main(String[] args) {
            C c = new C();    // Compile-time error. C is abstract
            B b = new B();    // OK: B is concrete 
        }
    }
    
    abstract class A{
        abstract void methA();
        public void methB(){
    
        }
    }
    
    /**
     * Non-abstract class extending asbtract class.
     * */
    class B extends A{
        /*
         * Since it is Non-abstract class, it must provide impl of abstract method because without impl of 
         * method Object of class can't be created.
         * */
        void methA() {
    
        };
    
        /*
         * This overriding is optional, since it's impl is already existing in super class.
         * If class B has to give spl impl then B should override this method
         * */
        @Override
        public void methB() {
            // TODO Auto-generated method stub
            super.methB();
        }
    }
    
    
    abstract class C extends A{
        /*
         * Since C is also abstract it may or may not override the method. 
         * */
    
        /*
         * Overriding and providing impl is optional.
         * */
        @Override
        void methA() {
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2013-06-10
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多