* person类:lily-->enjoy()
* dog类:type,name,age;shout()
* Cat类:type,name,age;-->shout()
* Test类:宠物店
* Animal类:dog和cat共同属性
package z20200813;
public class animal {
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//通过有参构造方法初始化成员变量
public animal(String type, String name, int age) {
this.type = type;
this.name = name;
this.age = age;
}
private String type;//种类
private String name;//名字
private int age;//年龄
public void shout(){
}
}
package z20200813;
public class animal {
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//通过有参构造方法初始化成员变量
public animal(String type, String name, int age) {
this.type = type;
this.name = name;
this.age = age;
}
private String type;//种类
private String name;//名字
private int age;//年龄
public void shout(){
}
}
package z20200813;
public class cat extends animal{
@Override
public void shout() {
System.out.println(super.getName()+"是"+super.getType()+"今年"+super.getAge()+"岁!,喵喵喵。。。。");
}
public cat(String type, String name, int age) {
super(type, name, age);
}
}
package z20200813;
public class person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//有参构造方法作用,初始化成员对象!
public person(String name, String sex) {
this.name = name;
this.sex = sex;
}
private String name;
private String sex;
public void enjoy(animal a){//向上转型
System.out.println("我叫"+this.name+",性别"+this.sex);
if(a instanceof Dog){
Dog d=(Dog) a;//向上转型
d.shout();
}else{
cat c=(cat)a;
c.shout();
}
}
}
package z20200813;
/**
* person类:lily-->enjoy()
* dog类:type,name,age;shout()
* Cat类:type,name,age;-->shout()
* Test类:宠物店
* Animal类:dog和cat共同属性
*/
public class Test1 {
public static animal sell(String what){
animal a=null;
if("狗".equals(what)){
a=new Dog("黑白相间","哈士奇",2);
} else if ("猫".equals(what)) {
a=new cat("黑白相间","蓝短",3);
}
return a;
}
public static void main(String[] args) {
person lily=new person("丽丽","女");
lily.enjoy(sell("猫"));
}
}