C# 抽象类和密闭方法

抽象类abstract:

1.抽象类只存在一个目的就是被继承;2.抽象类不能够实例化,只能够被继承;3.抽象类可以包含抽象成员和普通成员,以及他们的任意组合;4.抽象类的抽象成员在派生类中需要使用override关键字实现。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        // 定义抽象类,如果子类中含有抽象类,那么父类一定要写成抽象类
        abstract public class Aminal
        {
            // 定义抽象方法
            abstract public void speack();
        }
        // Dog继承Aminal类
        public class Dog : Aminal
        {
            // 重写抽象方法
            override public void speack()
            {
                Console.WriteLine("狗狗狗!!!");
            }
        }
        static void Main(string[] args)
        {
            Aminal dog = new Dog();
            dog.speack();
        }
    }
}

密闭方法(使用sealed)来做密闭方法的时候子类不能在重写该方法,该方法已在父类中结束后续重写

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        // 定义抽象类
        abstract public class Aminal
        {
            // 定义抽象方法
            abstract public void speack();
        }
        // Dog继承Aminal类
        public class Dog : Aminal
        {
            // 重写抽象方法, 使用sealed来禁止子类重写
            sealed override public void speack()
            {
                Console.WriteLine("狗狗狗!!!");
            }
        }
        static void Main(string[] args)
        {
            Aminal dog = new Dog();
            dog.speack();
        }
    }
}