2

我正在编写如下代码,我需要从父类的静态方法中获取子类的值。

有人可以帮我解决吗?先谢谢了。

public abstract class DataObject<T>{
    public static int GetAllTotal(){
        // How can I obtain a T propery called "code" = "001". 
        int cont = SQL.getTotalFromQuery(
                           "SELECT * from tblProducts where code = '001'"
        );
       return ffff
    }

    ...
}

public class Product extends DataObject<Product>{
    private String code = "001";
    public Product(){
    }
}

...

Product.GetAllTotal();
4

4 回答 4

1

您需要使用以下内容:

super.GetAllTotal();

在子(派生)类中。

superjava中派生类的父类的引用在哪里?

于 2012-05-22T16:17:45.183 回答
1

首先,您需要一个类的对象才能从静态方法动态访问成员。

然后,您可以在父类中定义一个公共getCode()函数,在子类中覆盖该函数,该函数返回code成员变量的值。

于 2012-05-22T16:19:41.253 回答
0

使用关键字super访问父类的引用。在你的情况下,

super.GetAllTotal();
于 2012-05-22T16:19:24.913 回答
0

我们不能使 GetAllTotal 方法参数化以接受参数,或者它们在更改方法定义方面存在一些限制

GetAllTotal(String code)
于 2012-05-22T17:28:06.650 回答