继承的简单实现

题目要求:有两种人分别是中国人和美国人,使用面向对象的思想,分别实现让他们说出自己国家的问候语,该如和实现?

中国人:你好! 美国人: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!


看到上面的方式,总感觉有点别扭,有没有更简洁的方法呢?答案是肯定的,那就是使用抽象类,这里重新定义一个抽象父类APersons

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!");
	}
}

测试类里面的内容不用修改,这时的运行结果和上面的是一样的,从这个例子来看,使用抽象要比之前定义的方法要省几行代码,但依然也实现了想要的结果。

这只是一个小的例子,至于具体使用什么,还的看项目的具体情况和需求。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值