这可能是另一个的子类型

时间:2014-12-13 19:43:49

标签: oop

class B {
    …
    /* search for x in a and return the index of the first occurrence,
     * or -1 if not found */
   int search(int[] a, int x) {
       …
   }
   …
}


class C {
    …
    /* produces the same results but uses binary search for speed;
     * the array a must be sorted */ 
    int search(int[] a, int x) {
        …
    }
    …
}

1 个答案:

答案 0 :(得分:0)

我认为从另一方继承是不合理的。每个search()函数的功能都不同。您可以创建一个接口,以确保您的两个类中的每一个都必须实现search()函数,然后从接口继承这两个类。 所以,像这样:

interface A { int search(int[] a, int x); //no implementation details }

class B { int search(int[] a, int x) { // Here is class A search implementation }

class C { int search(int[] a, int x) { // Here is class B search implementation }