Difference between revisions of "Inheritance - 2017"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
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 15: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);
        }