1. static 类的继承

public static class ProductInfo{
public static final String P_ID = "id";
public static final String PRODUCT_TYPE = "id";
public static final String P_NAME = "id";
public static final String PRICE = "id";
public static final String PAY_CATEGORY = "id";
public static final String RATING = "id";
public static final String ICON_URL = "id";
public static final String SHORT_DESCRIPTION = "id";
public static final String APP_SIZE = "id";
public static final String SOURCE_TYPE = "id";
public static final String AUTHOR_NAME = "id";
public static final String RATINGS_COUNT = "id";
public static final String SPECIAL_FLAG = "id";

public String p_id;
public String product_type;
public String name;
public String price;
public String pay_category;
public String rating;
public String icon_url;
public String short_description;
public String app_size;
public String source_type;
public String author_name;
public String ratings_count;
public String special_flag;

}

public static class ProductDetailInfo extends ProductInfo{
public String packagename;
public String version_code;
public String comments_count;
public String download_count;
public String long_description;
public String publish_time;
public String screenshot_1;
public String screenshot_2;
public String screenshot_3;
public String screenshot_4;
public String screenshot_5;
public String version_name;
public String uses_permission;

}

这样写行不行?

回答这个问题之前,先想想什么情况下使用static关键字?

  第一种:当你想让某个变量不与他所在的类的实例对象产生任何联系,无论new出多少个对象,该数据都只在内存中存储一份。

    例如常量,因为你可能在别的类中引用这个变量,而你又不想new出个对象,只能使用static关键字。

  第二种:当你想让某个方法不与他所在的类的实例对象产生联系的时候。

什么情况下使用内部类

  当类A需要使用类B的实例对象,而且类B中还会使用到类A的变量或者方法时,就需要将类B定义成类A的内部类。如果类B不许要使用到类A的变量或者方法时,并且在其他外部类中还会频繁使用到类B的变量或者方法时,可以将类B定已成类A的静态内部类。

现在分析上述的代码:

  这个static类都是GfanStore类的静态内部类

  1. 为什么将这两个类定义成静态内部类

  因为静态内部类不依赖于他的外部类,即时没有创建外部类的对象,我们仍旧可以创建内部类对象,当我们在其他的类中想要创建ProductInfo的实例对象的时候,如果他是简单的内部类,那么我们需要首先创建GfanStore类的实例对象(只有这样才能将这个内部类加载到内存),然后才能创建 ProductInfo的实例对象。对于简单的内部类,我们通常仅仅是在了外部类的内部使用,例如在一个View中,我需要使用Adapter,那么我就可以使用内部类来创建一个BaseAdapter的子类,在其他的view中是不许要使用这个Adapter的,这样使用内部类是很合适的,但是如果在别的类中我们需要使用这个类了,那么我们就需要将其定义成static的,这样这个static内部类就可以当作一个外部类来使用了,例如上述的两个静态内部类,我在view中需要创建他们的实例对象,我可以直接new对象,这样就很简单。

  2. 静态内部类的继承

  静态内部类继承静态内部类也是可以的,只是看起来有些别扭罢了

附录:

  引用一片网友的文章,写的很全

   http://lavasoft.blog.51cto.com/62575/179484/  

  还有一篇是通过内部类间接实现类的多继承

   http://jiangzhengjun.javaeye.com/blog/658353

posted on 2011-03-09 19:50  Android火鸟  阅读(4147)  评论(0编辑  收藏  举报