【问题标题】:How do I define an abstract class [closed]如何定义抽象类 [关闭]
【发布时间】:2011-12-02 07:49:16
【问题描述】:

我们如何在java中定义一个抽象类?

它使用的原型是什么?

请提供一个例子,为了清楚起见,我是java新手。

谢谢。

【问题讨论】:

标签: java


【解决方案1】:
abstract class AbstractTestClass { 
    protected String myString; 

    public String getMyString() { 
        return myString; 
    } 

    public abstract string anyAbstractFunction();
}

更多详情请参考link

【讨论】:

    【解决方案2】:

    请参阅以下可以帮助您的示例

    import java.util.*;
    
    // Provider framework sketch
    public abstract class Foo {
        // Maps String key to corresponding Class object
        private static Map implementations = null;
    
        // Initializes implementations map the first time it's called
        private static synchronized void initMapIfNecessary() {
            if (implementations == null) {
                implementations = new HashMap();
    
                // Load implementation class names and keys from
                // Properties file, translate names into Class
                // objects using Class.forName and store mappings.
                // ...
            }
        }
    
        public static Foo getInstance(String key) {
            initMapIfNecessary();
            Class c = (Class) implementations.get(key);
            if (c == null)
                return new DefaultFoo();
    
            try {
                return (Foo) c.newInstance();
            } catch (Exception e) {
                return new DefaultFoo();
            }
        }
    
        public static void main(String[] args) {
            System.out.println(getInstance("NonexistentFoo"));
        }
    }
    
    class DefaultFoo extends Foo {
    }
    

    【讨论】:

      【解决方案3】:

      一般:

      public abstract class SomeClass
      {
          // A pure virtual function
          public abstract void PureVirtual();
      
          // A regular \ virtual function
          public String SomeFunction(String arg)
          {
              return arg;
          }
      }
      

      【讨论】:

        【解决方案4】:
        public abstract class AbstractMyClass {
        
            // declare fields
            int part1 = 4;
            int part2 = 5;
        
            //declare non abstract mehots with some code
            @Override
            public String toString() {
                return part1.toString() + part2.toString();
            }
        
        
            //declare abstract methods without code (like in an interface)
            abstract void compute();
        }
        

        这是一个如何设置抽象类的示例。更多关于可以在这里找到:http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

        【讨论】:

        • 给抽象类名加上Abstract前缀是很常见的。所以你的班级应该命名为AbstractMyClass而不是MyAbstractClass
        猜你喜欢
        • 1970-01-01
        • 2018-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多