1.练习-Animal类
- 创建Animal类,它是所有动物的抽象父类。
- 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。
- 定义一个受保护的构造器,用来初始化legs属性。
- 声明抽象方法eat。
- 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
package jiekouhomework;
public abstract class Animal {
protected int legs;
protected Animal() {
}
protected Animal(int legs) {
this.legs = legs;
}
public abstract void eat();
public void walk(){
System.out.println("用"+legs+"走路");
}
}
练习Spider类
- Spider继承Animal类。
- 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。
- 实现eat方法
package jiekouhomework;
public class Spider extends Animal {
public Spider(int legs) {
super(legs);
}
@Override
public void eat() {
System.out.println("蜘蛛吃虫");
}
public static void main(String[] args) {
Spider s=new Spider(8);
s.walk();
}
}
练习Pet接口
根据UML类创建pet(宠物)接口
- 提供getName() 返回该宠物的名字
- 提供setName(String name) 为该宠物命名
- 提供 play()方法
package jiekouhomework;
public class Cat extends Animal implements Pet{
String name;
public Cat(String name) {
//调用超类构造器来指明所有的猫都是四条腿。
super(4);
this.name = name;
}
public Cat() {
//该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数
this("");
System.out.println("加菲猫");
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public String getName() {
return null;
}
@Override
public String setName(String name) {
return null;
}
@Override
public void play() {
}
public static void main(String[] args) {
Cat cat=new Cat();
cat.walk();
}
}
练习fish类
- 创建Fish类,它继承Animal类
- 重写Animal的walk方法以表明鱼不能走且没有腿。
- 实现Pet接口
- 无参构造方法
- 提供一个private 的name属性
package jiekouhomework;
public class Fish extends Animal implements Pet {
private String name;
public Fish() {
}
@Override
public void walk(){
System.out.println("鱼没有腿不能走");
}
@Override
public void eat() {
System.out.println("鱼吃鱼饵");
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name=name;
}
@Override
public void play() {
}
}