public static void main(String[] args) {
/*
* 1.定义动物类属性:年龄,颜色 行为:eat(String
* something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西) 生成空参有参构造,set和get方法
* 2.定义狗类继承动物类,行为:eat(String something)方法,看家lookHome方法(无参数)
* 3.定义猫类继承动物类,行为:eat(String something)方法,逮老鼠catchMouse方法(无参数)
* 4.定义Person类属性:姓名,年龄 行为:keepPet(Dog dog,String
* something)方法,功能:喂养宠物狗,something表示喂养的东西 行为:keepPet(Cat cat,String
* something)方法 功能:喂养宠物猫,something表示喂养的东西 生成空参有参构造,set和get方法
* 5.定义测试类(完成以下打印效果): keepPet(Dog dog,String something)方法打印内容如下:
* 年龄为30岁的老王养了一只黑颜色的2岁的宠物,2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃 keepPet(Cat cat,String
* somethind)方法打印内容如下: 年龄为25岁的老李养了一只灰颜色的3岁的宠物,3岁的灰颜色的猫眯着眼睛侧着头吃鱼
* 6.思考:1.Dog和Cat都是Animal的子类,以上案例中针对不同的动物,定义了不同的keepPet方法,过于繁琐,能否简化,
* 并体会简化后的好处? 2.Dog和Cat虽然都是Animal的子类,但是都有其特有方法,能否想办法在keepPet中调用特有方法?
*/
Person a=new Person("老王",18);
a.keepPet(new Gou("黑",2), "骨头");
Person a1=new Person("老李",99);
a1.keepPet(new Mao("灰",3), "鱼摆摆");
}
}
/*
* 1.定义动物类属性:年龄,颜色 行为:eat(String
* something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西) 生成空参有参构造,set和get方法
*/
abstract class Dong {
int age;
String color;
public Dong(int age, String color) {
super();
this.age = age;
this.color = color;
}
public Dong() {
super();
}
public abstract void eat(String something);
}
//2.定义狗类继承动物类,行为:eat(String something)方法,看家lookHome方法(无参数)
class Gou extends Dong{
Gou(String string, int i) {
super(i, string);
}
@Override
public void eat(String something) {
System.out.println("舔舐"+something);
}
public void lookHome(){
System.out.println("宅男");
}
}
//3.定义猫类继承动物类,行为:eat(String something)方法,逮老鼠catchMouse方法(无参数)
class Mao extends Dong{
public Mao(String string, int i) {
super(i,string);
}
public void eat(String something) {
System.out.println("跪舔");
}
public void catchMouse(){
System.out.println("抓老鼠");
}
}
//4.定义Person类属性:姓名,年龄 行为:
//keepPet(Dog dog,Stringsomething)方法,功能:喂养宠物狗,something表示喂养的东西
//行为:keepPet(Cat cat,Stringsomething)方法 功能:喂养宠物猫,something表示喂养的东西 生成空参有参构造,set和get方法
class Person{
String name ;
int age;
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void keepPet(Gou dog ,String something){
System.out.println("年龄为"+age+"岁的"+name+"养了一只"+dog.color+"颜色的"+dog.age+"岁的宠物,"+dog.age+"岁的"+dog.color+"颜色的狗两只前腿死死的抱住骨头猛吃");;
}
public void keepPet(Mao mao ,String something){
System.out.println("年龄为"+age+"岁的"+name+"养了一只"+mao.color+"颜色的"+mao.age+"岁的宠物,"+mao.age+"岁的"+mao.color+"颜色的猫眯着眼睛侧着头跪舔鱼");
}
}
写下作业,头疼
|
|