今天看了一下C#,前面还将就能看懂,越到后面越难,小菜有几个问题,请高手来解答一下。
1:属性问题:书上说的是为了隐藏对象的实现细节,同时又使用户能够访问相应的元素。这个到底是怎么实现的啊?
比如下面这道例题:
using System;
namespace LearnigCsharp
{
class Elephant
{
private decimal dailyConsumptionRate;
public decimal DailyFoodIntake
{
get
{
return dailyConsumptionRate;
}
set
{
if (value < dailyConsumptionRate - 25)
{
//通知医疗中心
}
else
{
dailyConsumptionRate = value;
}
}
}
}
class Zoo
{
static void Main(string[] args)
{
Elephant e = new Elephant();
e.DailyFoodIntake = 300M;
Console.ReadKey();
}
}
}
怎么可以直接给DailyFoodIntake方法赋300M呢?难道300M就通过GET传给dailyconsumpionRate了啊?还有那个SET中的VALUE是虾米意思啊?我就是搞不懂GET和SET是怎么运作的,这种方法怎么就隐藏了对象的实现细节啊?
2.抽象类与虚方法问题:搞不清楚他俩的区别,感觉两个都是定义前加个关键字,然后使用方法的时候都要重载一次。