• C#抽象类可以有构造方法吗,若是有如何实现及调用?


    抽象类可以有构造函数吗?--可以有,若是不写,提供默认protected级别构造.
    如果有,其带参构造和无参构造什么时候,怎样调用?--无参构造自动调用,带餐构造必须显式调用,和是否抽象类无关.

    /*--===------------------------------------------===---
    作者:许明会
    日期:2008年1月18日 16:33:57
    目的:抽象类中可以有构造函数吗? 如何调用?

    若希望类能够有派生类,必须为其实现默认构造函数.
    若类没有实现带餐构造,编译器将自动创建默认构造函数.
    若类实现了带参构造,则编译器不会自动生成默认构造.

    子类实例化时(不管是否为带参构造):
        只会调用所有父类的无参构造函数
        带参构造必须通过显式去调用.
    --===------------------------------------------===---
    */

    using System;

    namespace xumh
    {
        
    public abstract class myClass
        
    {
            
    //总会被调用,否则无法创建带参构造
            public myClass()
            
    {
                Console.WriteLine(
    "抽象类中的无参构造函数.");
            }

            
    //只可以显式调用
            public myClass(int a, int b)
            
    {
                Console.WriteLine(
    "抽象类中的带参构造函数:{0},{1}.",a,b);
            }

        }

        
        
    public class test : myClass
        
    {
            
    public test()
            
    {
                Console.WriteLine(
    "派生类中的无参构造函数.");
            }

            
    public test(int a, int b)//:base(a,b)//显式调用
            {
                Console.WriteLine(
    "派生类中的带参构造函数:{0},{1}.",a,b);
            }

        }


        
    public class runMyApp
        
    {
            
    static void Main()
            
    {
                test t1 
    = new test();
                test t2 
    = new test(1,2);
            }

        }

    }

    /*--===------------------------------------------===---
    输出信息如下:
    抽象类中的无参构造函数.
    派生类中的无参构造函数.
    抽象类中的无参构造函数.
    派生类中的带参构造函数:1,2.
    --===------------------------------------------===---
    */
  • 相关阅读:
    python处理字符串类型的公式并计算结果
    Python之sklearn学习
    查看python安装的包
    Qt配置Qwt
    Qt开启C++线程里并访问界面
    Matlab的nargin、nargout
    sql获取行数
    C++/QT打印当前行文件名和行数
    QString::number保留小数
    Qt:setGeometry: Unable to set geometry 2170x1017+0+23 on QWidgetWindow/'MainWindowWindow
  • 原文地址:https://www.cnblogs.com/ccky/p/1349530.html
Copyright © 2020-2023  润新知