练习-Animal类
1. 创建Animal类,它是所有动物的抽象父类。
2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。
3. 定义一个受保护的构造器,用来初始化legs属性。
4. 声明抽象方法eat。
5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
代码
package charactor;
public abstract class Animal {
protected int legs;
protected Animal(int legs) {
this.legs = legs;
}
public void walk() {
System.out.println("这个动物是用" + this.legs + "腿走路");
}
public abstract void eat();
}
练习-Spider类
1. Spider继承Animal类。
2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。
3. 实现eat方法
package charactor;
public class Spider extends Animal {
public Spider() {
super(8);
}
public void eat() {
System.out.println("蜘蛛吃大虫子");
}
}
练习-Pet接口
根据UML类创建pet(宠物)接口
1. 提供getName() 返回该宠物的名字
2. 提供setName(String name) 为该宠物命名
3. 提供 play()方法
代码:
package charactor;
public interface Pet {
public String getName();
public void setName(String name);
public void play();
}
练习-Cat类
1. 该类必须包含String属性来存宠物的名字。
2. 定义一个构造器,它使用String参数指定猫的名字;该构造器必须调用超类构造器来指明所有的猫都是四条腿。
3. 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数
4. 实现Pet接口方法。
5. 实现eat方法。
代码:
package charactor;
public class Cat extends Animal implements Pet {
String name;
public Cat(String name) {
super(4);
this.name = name;
}
public Cat() {
this(null);
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
};
public void play() {
System.out.println(this.name + "在愉快的玩耍");
}
public void eat() {
System.out.println(this.name + "在愉快的吃饭");
}
}
练习-Fish类
1. 创建Fish类,它继承Animal类
2. 重写Animal的walk方法以表明鱼不能走且没有腿。
3. 实现Pet接口
4. 无参构造方法
5. 提供一个private 的name属性
代码:
package charactor;
public class Fish extends Animal implements Pet {
public Fish() {
super(0);
// TODO Auto-generated constructor stub
}
private String name;
public String getName() {
return this.name;
}
public void setName(String Name) {
}
public void play() {
}
public void walk() {
System.out.println("鱼不能走且没有腿");
}
public void eat() {
}
}