Inheritance - 2017

From TRCCompSci - AQA Computer Science
Jump to: navigation, search

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);
        }