package cn.jbit.epet.purview; /** * 狗狗类,宠物的子类。 */ public class Dog extends Pet { private String strain;// 品种 /** * 有参构造方法。 * @param name 昵称 * @param strain 品种 */ public Dog(String name, String strain) { super(name); //此处不能使用this.name=name; this.strain = strain; } public void setStrain(String strain) { this.strain = strain; } public String getStrain() { return strain; } public void print(){ super.print(); System.out.println("我是一只"+this.getStrain()+"犬。"); } /** * 测试不能被继承的情况 */ public void test(){ //System.out.println(name); // 不能继承private成员 System.out.println(color); // 同包下,可以继承protected成员 System.out.println(avoirdupois); //同包下,子类可以继承默认访问权限的成员 System.out.println(id);// 同包下,可以继承public成员 } }
package cn.jbit.epet.purview; /** * 宠物类,狗狗和企鹅的父类。 */ public class Pet { private String name = "无名氏";// 昵称 private int health = 100;// 健康值 private int love = 0;// 亲密度 /*以下属性是测试访问权限及继承情况*/ int avoirdupois=2; //重量 protected String color; //颜色 public int id=1001; //编号 /** * 无参构造方法。 */ public Pet() { this.health = 95; System.out.println("执行宠物的无参构造方法。"); } /** * 有参构造方法。 * @param name 昵称 */ public Pet(String name) { this.name = name; } public String getName() { return name; } public int getHealth() { return health; } public int getLove() { return love; } /** * 输出宠物信息。 */ public void print() { System.out.println("宠物的自白:\n我的名字叫" + this.name + ",我的健康值是" + this.health + ",我和主人的亲密程度是" + this.love + "。"); } }
public class Test { /** * @param args */ public static void main(String[] args) { System.out.println(new Pet().color); //同包下,可以使用protected成员 System.out.println(new Pet().id);// 同包下,可以使用public成员 } }