多态版
以下的案例都是又四个类组成
animal类 animaldemo测试类 cat类 dog类
需求:
.请采用多态的思想实现猫和狗的案例,并在测试类中开始测试
思路:
1.定义动物类(animal)
.成员变量 姓名 年龄
.构造方法 无参 带参
.成员方法 get/set,吃饭()
2.定义猫类(cat)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭()
3.定义狗类(dog)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭()
4.测试类
.写代码测试
animal类
package 多态案例_猫和狗;
public class animal {
private String name;
private int age;
//------成员变量------------------------------
public void eat() {
// TODO 自动生成的方法存根
System.out.println("动物吃东西");
}
//------成员方法------------------------------
/**
*
*/
public animal() {
}
/**
* @param name
* @param age
*/
public animal(String name, int age) {
this.name = name;
this.age = age;
}
//------构造方法------------------------------
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name 要设置的 name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age 要设置的 age
*/
public void setAge(int age) {
this.age = age;
}
//------get/set------------------------------
}
animaldemo测试类
package 多态案例_猫和狗;
public class animaldemo {
/*
需求:
.请采用多态的思想实现猫和狗的案例,并在测试类中开始测试
思路:
1.定义动物类(animal)
.成员变量 姓名 年龄
.构造方法 无参 带参
.成员方法 get/set,吃饭()
2.定义猫类(cat)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭()
3.定义狗类(dog)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭()
4.测试类
.写代码测试
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
//创建猫类对象的多态形式
animal a = new cat(); //无参猫
a.setAge(5);
a.setName("加菲");
System.out.print(a.getAge()+"岁的猫 "+a.getName()+" 喜欢");
a.eat();
a = new cat("加洛特",15); //有参猫
System.out.print(a.getAge()+"岁的猫 "+a.getName()+" 喜欢");
a.eat();
//创建狗类对象的多态形式
animal b = new dog(); //无参狗
b.setAge(7);
b.setName("斯蒂芬");
System.out.print(b.getAge()+"岁的狗 "+b.getName()+" 喜欢");
b.eat();
b = new dog("王大",8); //有参狗
System.out.print(b.getAge()+"岁的狗 "+b.getName()+" 喜欢");
b.eat();
}
}
cat类
package 多态案例_猫和狗;
public class cat extends animal {
/**
*
*/
public cat() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public cat(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//------构造方法------------------------------
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("吃鱼");
}
//------重写父类成员方法-----------------------
}
dog类
package 多态案例_猫和狗;
public class dog extends animal {
/**
*
*/
public dog() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public dog(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//------构造方法------------------------------
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("吃骨头");
}
//------重写父类成员方法-----------------------
}
抽象版
需求:
.请采用多态的思想实现猫和狗的案例,并在测试类中开始测试
思路:
1.定义动物类(animal)
.成员变量 姓名 年龄
.构造方法 无参 带参
.成员方法 get/set,吃饭();
2.定义猫类(cat)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭(){...}
3.定义狗类(dog)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭(){...}
4.测试类
.写代码测试
animal类
package 抽象类案例_猫和狗;
public abstract class animal {
private String name;
private int age;
//------成员变量------------------------------
public abstract void eat();
//------成员方法------------------------------
/**
*
*/
public animal() {
}
/**
* @param name
* @param age
*/
public animal(String name, int age) {
this.name = name;
this.age = age;
}
//------构造方法------------------------------
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name 要设置的 name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age 要设置的 age
*/
public void setAge(int age) {
this.age = age;
}
//------get/set------------------------------
}
animaldemo测试类
package 抽象类案例_猫和狗;
public class animaldemo {
/*
需求:
.请采用多态的思想实现猫和狗的案例,并在测试类中开始测试
思路:
1.定义动物类(animal)
.成员变量 姓名 年龄
.构造方法 无参 带参
.成员方法 get/set,吃饭();
2.定义猫类(cat)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭(){...}
3.定义狗类(dog)继承动物类
.构造方法 无参 带参
.成员方法 重写吃饭(){...}
4.测试类
.写代码测试
*/
public static void main(String[] args) {
animal a = new cat();
a.setName("旺财");
a.setAge(20);
System.out.print(a.getAge()+"岁的猫 "+a.getName()+" 喜欢");
a.eat();
a = new cat("柯尔特",12);
System.out.print(a.getAge()+"岁的猫 "+a.getName()+" 喜欢");
a.eat();
System.out.println("-----------------------------------------");
animal b = new dog();
b.setAge(13);
b.setName("卡斯");
System.out.print(b.getAge()+"岁的狗 "+b.getName()+" 喜欢");
b.eat();
b = new dog("概念",11);
System.out.print(b.getAge()+"岁的狗 "+b.getName()+" 喜欢");
b.eat();
}
}
cat类
package 抽象类案例_猫和狗;
public class cat extends animal {
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("吃鱼");
}
//----------------------------------------------------------------
/**
*
*/
public cat() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public cat(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
}
dog类
package 抽象类案例_猫和狗;
public class dog extends animal {
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("吃骨头");
}
//----------------------------------------------------------------
/**
*
*/
public dog() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public dog(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
}
继承版
需求:
.请采用继承的思想实现猫和狗的案例,并在测试类中进行测试
思路:
1.定义动物类(animal)
.成员变量:姓名,年龄
.构造方法:带参,无参
.成员方法:get/set方法
2.定义猫类(cat)继承动物类
.构造方法:带参,无参
.成员方法:抓老鼠
3.定义狗类(dog)继承动物类
.构造方法:带参,无参
.成员方法:看门
4.定义测试类(animaldemo),写测试代码
animal类
package 继承案例_猫和狗;
public class animal {
//---------成员变量----------------------------
private String name;
private int age;
//---------构造方法----------------------------
/**
*
*/
public animal() {
}
/**
* @param name
* @param age
*/
public animal(String name, int age) {
this.name = name;
this.age = age;
}
//---------构造方法----------------------------
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name 要设置的 name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age 要设置的 age
*/
public void setAge(int age) {
this.age = age;
}
}
animaldemo测试类
package 继承案例_猫和狗;
public class animaldemo {
/*
需求:
.请采用继承的思想实现猫和狗的案例,并在测试类中进行测试
思路:
1.定义动物类(animal)
.成员变量:姓名,年龄
.构造方法:带参,无参
.成员方法:get/set方法
2.定义猫类(cat)继承动物类
.构造方法:带参,无参
.成员方法:抓老鼠
3.定义狗类(dog)继承动物类
.构造方法:带参,无参
.成员方法:看门
4.定义测试类(animaldemo),写测试代码
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
cat c = new cat("tom",20);
System.out.print(c.getAge()+"岁的猫 "+c.getName()+" 喜欢");
c.catchmouse();
c.setAge(18);
c.setName("德瓦西");
System.out.print(c.getAge()+"岁的猫 "+c.getName()+" 喜欢");
c.catchmouse();
dog d = new dog("旺财",18);
System.out.print(d.getAge()+"岁的狗 "+d.getName()+" 喜欢");
d.lookdoor();
d.setAge(188);
d.setName("德瓦西龙");
System.out.print(d.getAge()+"岁的狗 "+d.getName()+" 喜欢");
d.lookdoor();
}
}
cat类
package 继承案例_猫和狗;
public class cat extends animal {
//---------构造方法----------------------------
/**
*
*/
public cat() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public cat(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//----------抓老鼠----------------------------
public void catchmouse() {
System.out.println("抓老鼠");
}
}
dog类
package 继承案例_猫和狗;
public class dog extends animal {
//---------构造方法----------------------------
/**
*
*/
public dog() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public dog(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//-----------看门----------------------------
public void lookdoor() {
System.out.println("看门");
}
}