1 namespace Inheritance 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 Dog dog = new Dog(); 8 dog.Age = 10; 9 dog.Bite(); 10 dog.GetAge(); 11 dog.BiteMan(); 12 Dog oldDog = new Dog(10); 13 14 15 Animal dog2 = new Dog(); 16 dog2.Bite(); 17 dog2.BiteMan(); 18 ((Dog)(dog2)).BiteMan(); //casts 19 Console.ReadLine(); 20 } 21 } 22 23 public class Animal 24 { 25 public int Age 26 { 27 get; 28 set; 29 } 30 public Animal() //constructor 31 { 32 Console.WriteLine("Animal constructure"); 33 } 34 35 public Animal(int age) 36 { 37 Console.WriteLine("Old Animal"); 38 this.Age = age; 39 } 40 41 public virtual void Bite() //virtual can be override when it be inherited 42 { 43 Console.WriteLine( "Animal bite"); 44 } 45 public virtual void GetAge() 46 { 47 Console.WriteLine(Age); 48 } 49 50 public void BiteMan() //can't be overrided without virtual 51 { 52 Console.WriteLine("Animal bite man"); 53 } 54 } 55 public sealed class Dog : Animal //sealed:can't be inherited 56 { 57 public Dog() //constructor 58 { 59 Console.WriteLine("Dog constructure"); 60 } 61 public Dog(int age):base(age) //call specific function 62 { 63 Console.WriteLine("Old Dog"); 64 this.Age = age; 65 } 66 public override void Bite() //override the parent class method 67 { 68 Console.WriteLine("Dog bite"); 69 } 70 71 public new void BiteMan() //new:new method which is as same as the parent class method,not override 72 { 73 Console.WriteLine("Dog bite man"); 74 } 75 } 76 }