• c# 第39节 抽象类、抽象方法


    本节内容:

    1:抽象类的说明

    2:抽象类的实例

    1:抽象类的说明

    抽象类定义:方法前有abstract就称为抽象类、抽象方法,抽象方法不提供任何实际实现。

    注意点1:

    抽象方法必须在抽象类中声明;
    不能使用static、private、或virtual修饰符   
    抽象方法不能有方法结构体 
    重写抽象方法时采用override

    注意点2:

    (1)抽象类不能实例化,必须通过继承由派生类实现其抽象方法;因此不能new,不能sealed; 
    
    (2)如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类
    
    (3)如果一个非抽象类从派生类中派生,则其必须通过重载来实现所有继承而来的抽象成员; 

    2:抽象类的实例

    实现: 

    Pow类 ::父类

    public abstract class Pow  //加上一个public,因为默认是private 的,再加上一个abstract 这样就构成了一个抽象类
    {
        public abstract void powmethod(int a,int b);
        //抽象类和抽象方法必须要有abstract关键字,且抽象方法不能有结构体
        //抽象类的声明就是为了让别人继承,所以我们不能将它标记为sealed
    
    }

    PowB::子类

    class PowB:Pow
    {
        public override void powmethod(int a,int b)
        {
            int pow=a;
            for (int i = 1; i < b; i++) 
            {
                pow *= a; 
            }
            Console.WriteLine("求幂的运算为:"+pow);        
        }
    }

    PowC::子类

    class PowC:Pow
    {
        public override void powmethod(int a, int b)
        {
            Console.WriteLine("求幂的运算结果是:"+System.Math.Pow(a,b));
        }
    
    }

    调用:

    class Program
    {
        static void Main(string[] args)
        {
            PowB obj = new PowB();
            PowC obj2 = new PowC();
    
            obj.powmethod(2,10);
            obj2.powmethod(2, 10);
    
            Console.ReadKey();
    
        }
    }

     

  • 相关阅读:
    平凡的母亲
    从一道笔试题谈算法优化(下)
    Lua manual翻译——第三章第七、八、九节
    [VC/MFC]一条语句实现程序运行时隐藏窗口
    《〈XNova/OGame〉源码笔记》(5)
    Fedora7,8,9 安装截图
    电信业重组以及3G牌照的发放
    FRC阅读软件及打印
    VC++学习的一些资源
    Perl 学习心得体会
  • 原文地址:https://www.cnblogs.com/hero799/p/8672803.html
Copyright © 2020-2023  润新知