• 抽象类里面的三种方法


    抽象类里面有三种方法

    1.抽象方法

    2.普通方法

    3.虚方法

     1  abstract class Class1
     2     {
     3         //抽象类Class1里面的抽象方法
     4         public abstract void str1();
     5         //抽象类Class1里面的普通方法
     6         public void str2()
     7         {
     8             Console.WriteLine("普通方法");
     9         }
    10         //抽象类Class1里面的虚方法
    11         public virtual void str3()
    12         {
    13             Console.WriteLine("这是虚方法");
    14         }
    15 
    16     }

    那么,这三种方法的区别是什么呢?

     1 class Class2:Class1
     2     {
     3         //抽象方法str1的重载
     4         public override void str1()
     5         {
     6             Console.WriteLine("抽象方法的重载");
     7         }
     8         //虚方法str3的继承
     9         public override void str3()
    10         {
    11             base.str3();
    12             Console.WriteLine("我重写的str3方法");
    13         }
    14         //普通方法str2的继承
    15         public void str()
    16         {
    17             base.str2();
    18         }
    19     }

    控制台:

     1   class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Class2 jj = new Class2();
     6             jj.str1();
     7             jj.str3();
     8             jj.str();
     9             Console.ReadKey();
    10         }
    11 
    12     }

    运行结果:

    总结:

    1.抽象方法

    抽象方法不能有方法体,在被继承之后可以重载方法。而且必须被继承。

    2.普通方法

    普通方法可以被继承也可以不被继承。与虚方法的区别在于普通方法不能重载,也就是方法体无法改变。

    3.虚方法

    虚方法可以被继承也可以不被继承。与普通方法的区别在于虚方法继承时要加override关键字而且允许被重载,也就是修改方法体。

    最后一句:请坚持自己的梦想。

  • 相关阅读:
    巨蟒python全栈开发-第11阶段 ansible_project4
    正则面试题
    正确的邮件发送格式?
    巨蟒python全栈开发-第11阶段 ansible_project3
    巨蟒python全栈开发-第11阶段 ansible_project2
    项目资源地址
    网络基础练习题
    巨蟒python全栈开发-第11阶段 ansible_project1
    数据库之单表查询
    数据的增删改
  • 原文地址:https://www.cnblogs.com/yunquan/p/5188152.html
Copyright © 2020-2023  润新知