C#: Classes - Base & Sub

  • To create a sub class,
  • add ' : <classname>' to the class statement
  • add :' base()' to the constructor
  •  


Base Class WITHOUT Arguments

  • If Base Class accepts NO arguments, the subclass doesn't need to include the 'base class constructor'
    class BaseClass
    {
        public BaseClass()
  • Constructor doesn't need an explicit reference to the base class
    class Base_SubClass : BaseClass
    {
       public Base_SubClass()
  • This is also valid & probably preferred

    class Base_SubClass : BaseClass
    {
       public Base_SubClass() : BaseClass() {}

Base Class WITH Arguments

  • If Base Class constructor TAKES arguments, the subclass constructor must include them explicitly

     class BaseClass
    {
        public BaseClass(string message)
        {
  • Include the baseclass argument

    class Base_SubClass : BaseClass
    {
        public Base_SubClass() : base("MessageForBaseClassConstructor")
        {


 

BaseClass Example

using System;
using System.Collections.Generic;
using System.Text;

namespace Basics.Basics
{
    class BaseClass
    {
        public BaseClass(string text)
        {
            Console.WriteLine("BaseClass()-Constructor():Passed String: {0}", text);
        }
        public static void StaticPrintOut()
        {
            Console.WriteLine("BaseClass.StaticPrintOut()");
        }
        public void InstancePrintOut()
        {
            Console.WriteLine("BaseClass.InstancePrintOut()");
        }
    }
}


 

SubClass Example

using System;
using System.Collections.Generic;
using System.Text;

namespace Basics.Basics
{
    class Base_SubClass : BaseClass
    {
       public Base_SubClass() : base("SubClassPassedString")
        {
            Console.WriteLine("Base_SubClass()-Constructor");
        }

        public static void StaticPrintOutSubClass()
        {
            Console.WriteLine("BaseClass.StaticPrintOutSubClass()");
        }
        public void InstancePrintOutSubClass()
        {
            Console.WriteLine("BaseClass.InstancePrintOutSubClass()");
        }

    }
}
Tags