一个简单的题,如何体现出封装,继承,多态!

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:03:22
C# 控制台程序.
题目:
手机卡充值:充值、余额查询
通过手机号、充值卡额度实现充值功能,并拥有余额查询功能(注意充值卡额度设置)

题不难,但小弟想知道,如何能很好的应用到, 封装,继承,多态.
哪位大哥能写一个看看,让小弟好好理解,认识,学习下面向对象的编程.
刚看了下1楼写的.
很不错,. 有个疑问, 手机卡的充值方法 放在 手机卡的类里面 好不?
我感觉应该是不是 由 "电信"来充值.

有个疑问, 手机卡的充值方法 放在 手机卡的类里面 好不?
我感觉应该是不是 由 "电信"来充值.
===================================
这只是个简单的程序,不需要那么复杂。这种教学的东西越简单越好。当有必要复杂时候,为了拓展方便,DEBUG方便,可以考虑分开一些处理business logic的class。

以下是我写的一个console application,有楼主说的面额,充值和查询余额功能。而且注释有介绍封装,继承,多态。运行后,会充值30元和50元的卡,最后输出余额80。希望楼主能用上。

using System;

namespace PhoneTopup
{
class Program
{
static void Main(string[] args)
{
PhoneAccount account = new PhoneAccount(); // 建立一个手机账户
TopupCard card; // 一张未知面额的卡
card = new TopupCard30(); // 这里建立了30元的,体现继承和多态
account.Topup(card); // 充值
card = new TopupCard50(); // 这里建立了50元的,体现继承和多态
account.Topup(card); // 充值,体现封装
Console.WriteLine(account.AccountBalance); // 查看余额,体现封装
}
}

// 用来记录一个手机账户class
class PhoneAccount
{
private in