【学习笔记】C# 抽象类

  • 抽象类
    • 有时设计类仅仅为了表达抽象的概念,不与具体的事物相联系,只作为其派生类的基类使用,用来描述所有子类的共同特性,这时我们可以使用抽象类
    • 抽象类不能被实例化,抽象类可以包含抽象方法
  • 抽象方法
    • 抽象方法只声明不实现,但是在具体的子类中必须全部实现
    • 抽象方法中可以包含非抽象方法,抽象方法必须写在抽象类中
    • 抽象方法不能使用Private访问权限修饰符
  •   
     1 using System;
     2 
     3 namespace AbstractClassDemo
     4 {
     5     //抽象方法只能出现在抽象类中
     6     //抽象类不能够直接实例化
     7     public abstract class Food
     8     {
     9         //抽象方法需要添加 abstract关键字
    10         //1. 在父类中定义的抽象方法不能够实现
    11         public abstract void Eat();
    12 
    13         //抽象类中可以包含普通的方法
    14         public void Test()
    15         {
    16             Console.WriteLine("Test");
    17         }
    18     }
    19 
    20     public class Apple:Food
    21     {
    22         //2. 子类实现父类的抽象方法时,需要添加Override
    23         public override void Eat()
    24         {
    25             Console.WriteLine("Hp+10");
    26         }
    27     }
    28 
    29     public class Water: Food
    30     {
    31         public override void Eat()
    32         {
    33             Console.WriteLine("Mp+10");
    34         }
    35     }
    36 
    37     class Program
    38     {
    39         static void Main(string[] args)
    40         {
    41             //Apple apple = new Apple();
    42             //apple.Eat();
    43             Food f1 = new Apple();
    44             Food f2 = new Water();
    45             f1.Eat();
    46             f2.Eat();
    47             f1.Test();
    48         }
    49     }
    50 }

     

posted @ 2017-07-22 11:03  星呓  阅读(155)  评论(0)    收藏  举报