java 继承详解_java 基础之继承详解实例

编码实现动物世界的继承关系:

a) 动物(Animal)具有行为:吃(eat)、睡觉(sleep) b) 受保护得物件(接口)具有得行为:beProtected(); c) 有价值得物件(接口)具有得行为:getMoney() d) 老虎是动物,同时是有价值且受保护得动物类型。 e) 熊猫是动物,同时是有价值且受保护得动物类型。 f) 这些动物吃的行为各不相同(熊猫吃竹子,老虎吃肉);但睡觉的行为是一致的;受保护得级别不一致,价值也不一致。

g) 请通过继承,接口实现以上需求,并编写测试类AnimalTest进行测试。

Animail.java父类-动物类

package com;  /**

* @author Administrator  *  */

public class Animal {  private String name;  private String food;  //吃的一个行为  public void eat() throws Exception{   System.out.println(this.name+"吃"+this.food+"!");  }

//睡觉的一个行为  public void sleep(){      System.out.println(this.name+"在睡觉!");  }

public String getName()

{

return name;  }

public void setName(String name)  {   this.name = name;  }

public String getFood()  {   return food;  }

public void setFood(String food)  {   this.food = food;  }

}

AnimalInterface.Java 接口

package com;

public interface AnimalInterface {  //默认为public,因为接口要被实现,并被广范使用,

//所以最好是public因为如果不是公开的就没有必要做接口了  void beProtected();  void getMoney();

}

AnimalTest.java 测试类

package com;

public class AnimalTest {   /**

* @param args

* @throws Exception    */

public static void main(String[] args) throws Exception  {

//当一种动物创造出来的时候,就会有一些行为 因为extends(继承)了Animal(动物)的特征   Tiger t= new Tiger();   Panda p= new Panda();   System.out.println("-------分割线--------");

//这是继承,当一个动物被生成的时候,就已经被赋予了类型和食物   t.eat();//饿了就得吃   t.sleep();//困了就得睡

p.eat();//不管什么动物都是一样的   p.sleep();//所以也要睡觉

//动物都有许多相同点,比如老虎和熊猫,它们是受保护的,和有价值的

//有些是必须的,所以implement(实现)了 AnimalInterface(动物界的一些特征-一个接口)   t.beProtected();

p.beProtected();

System.out.println("-------分割线--------");   //如果觉得没有这些特征,那么可以不实现   Animal m= new Mouse();//真是悲哀,没有特权,因为老爹不是李刚所以没有保护,也没有价值,不过有的行为还是有的只是有点不同,像下面一样   m.eat();//因为重写了eat方法(环境所迫)所以它吃的行为有点与众不同   System.out.println("-------分割线--------");   //这是继承的第二种表现形式   Animal tt=new Tiger();   tt.eat();   Animal pp=new Panda();   pp.eat();   System.out.println("-------分割线--------");   //实现接口   //由父类造一个子类   AnimalInterface at = new Tiger();    AnimalInterface ap = new Panda();    System.out.println("-------分割线--------");   at.beProtected();   at.getMoney();   ap.beProtected();   ap.getMoney();  } }

Panda.java熊猫类,继承了父类,并实现了接口

package com;

public class Panda extends Animal implements AnimalInterface {  public Panda() throws Exception{   this.setName("熊猫");   this.setFood("竹子");   super.eat();   beProtected();   getMoney();  }

@Override

public void beProtected()  {   System.out.println(this.getName()+"是受保护的动物类型");  }

@Override

public void getMoney()  {   System.out.println(this.getName()+"是 有价值的动物类型");

}

}

Tiger.java 老虎类,同熊猫类

package com;

public class Tiger extends Animal implements AnimalInterface {  public Tiger()throws Exception{   this.setName("老虎");

this.setFood("肉");   super.eat();   beProtected();   getMoney();

}

@Override

public void beProtected()  {   System.out.println(this.getName()+"是受保护的动物类型");

}

@Override

public void getMoney()  {   System.out.println(this.getName()+"是 有价值的动物类型");  }

}

Mouse.java 老鼠类,只是继承父类,并没有实现接口(因为在大多数人看来,老鼠不被人保护,而且没有利用价值)

package com;

public class Mouse extends Animal {  public Mouse() throws Exception{   //因为它常常躲在地下所以可以private   this.setName("老鼠");   this.setFood("残羹冷炙!");   super.eat();  }  @Override  public void eat(){   System.out.println(this.getName()+"躲着吃"+this.getFood());  }   }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.定义一个人的类(属性有名字,年龄,性别。写一个能输出各个属性值的方法showInfo()),定义一个学生类(属性有学号),学生继承人类,要求: (1)父类的属性赋值用构造方法来实现(分别用有参数构造方法和无参数构造方法实现); (2)子类的属性也用构造方法来赋值; (3)在子类中重写父类的showInfo()方法 (4)声明学生类的对象,调用学生的显示信息的方法。 2、请编码实现动物世界的继承关系: 动物(Animal)具有行为:吃(eat)、睡觉(sleep)、移动(move) 动物包括:兔子(Rabbit),老虎(Tiger),鹰(eagle) 这些动物吃、移动的行为各不相同(eat,move动作不同);但睡觉的行为是一致的。 3、(1)设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的,成员变量x和y,获取和设置x和y值的public方法。 (2)设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。 (3)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public方法。 (4)建立Cylinder对象,输出其轴心位置坐标、半径、面积、高及其体积的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值