//1.声明一个人类,人类包含姓名和年龄两个属性,
//定义人类的say()方法,打印“人类都可以说话”,
//声明一个子类中国人继承自人类,重写say()方法,
//打印“中国人说中国话”,添加一个中国人独有的功能做菜,
//打印“中国菜好吃”,声明一个子类美国人继承自人类,重写say()方法,
//打印美国人说英语,添加一个美国人独有的方法,打印“美国人喜欢吃牛排”,
//在主函数中使用多态的向上转型来调用方法,测试是否可以调用子类独有的方法
package a;
public class Student {
public static void main(String[] args) {
renlei r=new zhongguoren();
r.say();//调用他们共有的方法
r.gongneng();//使用向上转型是不可以调用子类独有的方法,如果想要使用
//就在父类加上这个方法就可以了
renlei m=new meiguoren();
m.say();
m.gongneng();
}
//判断
public static void panduan(renlei r){
if(r instanceof meiguoren){
r.say();
r.gongneng();
}else if(r instanceof zhongguoren){
r.say();
r.gongneng();
}
}
}
class renlei {
public String name;
public int age;
public void say(){
System.out.println("人类都可以说话");
}
public void gongneng(){
}
}
class zhongguoren extends renlei{
public void say(){
System.out.println("中国人类说中国话");
}
public void gongneng(){
System.out.println("中国人做菜好吃");
}
}
class meiguoren extends renlei{
public void say(){
System.out.println("美国人说英语");
}
public void gongneng(){
System.out.println("美国人喜欢吃牛排");
}
}