Difference between revisions of "Inheritance - 2017"
Line 1: | Line 1: | ||
Inheritance is where an object is based on another object, gaining all off the classes behaviors for example if "Lewis" was a subclass of "human" it would gain all of the movement attributes, food needed, 2 arms, 2 legs etc. But it can also gain other attributes that aren't in human while maintaining all the current ones. | Inheritance is where an object is based on another object, gaining all off the classes behaviors for example if "Lewis" was a subclass of "human" it would gain all of the movement attributes, food needed, 2 arms, 2 legs etc. But it can also gain other attributes that aren't in human while maintaining all the current ones. | ||
+ | Example in the skeleton program | ||
+ | Main Class | ||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
class Animal | class Animal | ||
Line 18: | Line 20: | ||
ID = NextID; | ID = NextID; | ||
NextID++; | NextID++; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Subclass with inherited values | ||
+ | <syntaxhighlight lang="csharp"> | ||
+ | class Fox : Animal | ||
+ | { | ||
+ | private int FoodUnitsNeeded = 10; | ||
+ | private int FoodUnitsConsumedThisPeriod = 0; | ||
+ | private const int DefaultLifespan = 7; | ||
+ | private const double DefaultProbabilityDeathOtherCauses = 0.1; | ||
+ | |||
+ | public Fox(int Variability) | ||
+ | : base(DefaultLifespan, DefaultProbabilityDeathOtherCauses, Variability) | ||
+ | { | ||
+ | FoodUnitsNeeded = (int)(10 * base.CalculateRandomValue(100, Variability) / 100); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 14:50, 6 February 2017
Inheritance is where an object is based on another object, gaining all off the classes behaviors for example if "Lewis" was a subclass of "human" it would gain all of the movement attributes, food needed, 2 arms, 2 legs etc. But it can also gain other attributes that aren't in human while maintaining all the current ones. Example in the skeleton program Main Class
class Animal
{
protected double NaturalLifespan;
protected int ID;
protected static int NextID = 1;
protected int Age = 0;
protected double ProbabilityOfDeathOtherCauses;
protected bool IsAlive;
protected static Random Rnd = new Random();
public Animal(int AvgLifespan, double AvgProbabilityOfDeathOtherCauses, int Variability)
{
NaturalLifespan = AvgLifespan * CalculateRandomValue(100, Variability) / 100;
ProbabilityOfDeathOtherCauses = AvgProbabilityOfDeathOtherCauses * CalculateRandomValue(100, Variability) / 100;
IsAlive = true;
ID = NextID;
NextID++;
}
Subclass with inherited values
class Fox : Animal
{
private int FoodUnitsNeeded = 10;
private int FoodUnitsConsumedThisPeriod = 0;
private const int DefaultLifespan = 7;
private const double DefaultProbabilityDeathOtherCauses = 0.1;
public Fox(int Variability)
: base(DefaultLifespan, DefaultProbabilityDeathOtherCauses, Variability)
{
FoodUnitsNeeded = (int)(10 * base.CalculateRandomValue(100, Variability) / 100);
}