Head First C# 中文版 图文皆译 第六章 继承 page235

创建Party类


确保Party类是public的。你需要仔细的观察类图,来分析出要把DinnerParty和BirthdayParty中哪些的方法、属性移动到Party中去。


*把NumberOfPeople和CostOfDecoration移动进去,以此来与DinnerParty和BirthdayParty保持兼容。


*也把CalculatorCostOfDecorations()和CalculateCost()方法移动进去。如果这些方法用到了某些私有字段,也要把该字段一起移动。(记住,子类只继承公有字段--一旦你把私有字段移动到Party类,DinnerParty和BirthdayParty类就不能访问该字段了。)


*Party类还要有构造方法。仔细观察一下DinnerParty和BirthdayParty的构造方法--它们相同的部分要移动到Party的构造方法里面去。


*现在添加向超过12人的聚会加收费$100的功能。毕竟,我们就是因此才在做这些改变的!这个特性同时属于DinnerParty和BirthdayParty,所以它需要处于Party类中。


让DinnerParty继承自Party


由于现在Party类可以做很多原来DinnerParty做的工作,所以你可以把重叠部分从DinnerParty中消除掉了,只把DinnerParty中独有的部分保留下来。


*确保构造方法运行良好。它做Party的构造方法不做的事儿吗?如果做的话,把它保留下来,其他相同部分留给父类的构造方法去完成。


*关于健康选择的部分要留在DinnerParty中。


*你至少需要覆写一个方法,因为它做DinnerParty中以独特的方式工作。


让BirthdayParty继承Party


对于BirthdayParty也一样,把共性的东西移动到父类,只把特性的东西保留在BirthdayParty中。


*BirthdayParty的构造方法需要做什么Party的构造方法没有完成的事情吗?


*你要在BirthdayParty内处理蛋糕花费。它触及到一个方法和一个属性,你需要覆写它们。


*没错,可以覆写属性!和覆写方法一样。你设置base.NumberOfPeople的值的时候,会调用这个属性父类中的的set访问器。使用set和get访问器都需要用到base关键字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值