题目要求:有两种人分别是中国人和美国人,使用面向对象的思想,分别实现让他们说出自己国家的问候语,该如和实现?
中国人:你好! 美国人:Hello!
首先分析出里面共有的特征
1、都是人类;
2、都有说话的方法;
那么就确定了父类的结构
public class Persons {
public void Say(){
System.out.println("说话的方法");
}
}
然后再定义两个类一个中国人类,一个美国人类分别重写父类里面的方法Say()方法
中国人类
public class Chinese extends Persons{
public void Say(){
System.out.println("中国人说:你好!");
}
}
美国人类
public class American extends Persons{
public void Say(){
System.out.println("美国人说:Hello!");
}
}
在测试类中分别创建中国人和美国人的对象
public static void main(String[] args){
Chinese ch = new Chinese();
ch.Say();
American am = new American();
am.Say();
}
输出结果为:
中国人说:你好!
美国人说:Hello!
public abstract class APersons {
public abstract void Say();
}
因为父类是一个抽象类,所以里面的方法没有方法体,我们修改一下让中国人类和美国人类分别继承APersons类,然后实现里面的抽象方法
中国人类
public class Chinese extends APersons{
public void Say(){
System.out.println("中国人说:你好!");
}
}
美国人类
public class American extends APersons{
public void Say(){
System.out.println("美国人说:Hello!");
}
}
测试类里面的内容不用修改,这时的运行结果和上面的是一样的,从这个例子来看,使用抽象要比之前定义的方法要省几行代码,但依然也实现了想要的结果。
这只是一个小的例子,至于具体使用什么,还的看项目的具体情况和需求。