zoukankan      html  css  js  c++  java
  • 抽象类里面的三种方法

    抽象类里面有三种方法

    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关键字而且允许被重载,也就是修改方法体。

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

  • 相关阅读:
    HDOJ 1207 汉诺塔II
    [转]写代码的小女孩
    POJ Subway tree systems
    HDOJ 3555 Bomb (数位DP)
    POJ 1636 Prison rearrangement (DP)
    POJ 1015 Jury Compromise (DP)
    UVA 10003
    UVA 103 Stacking Boxes
    HDOJ 3530 Subsequence
    第三百六十二、三天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/yunquan/p/5188152.html
Copyright © 2011-2022 走看看