C#(二十一)之派生类中的构造函数 object类

简介: 今天看下派生类中的有参数和无参数的构造函数以及object类。

QQ图片20220426141845.jpg

今天看下派生类中的有参数和无参数的构造函数以及object类:


1:无参数构造函数:


/* C#主要的运行函数,就是main函数 */
        static void Main(string[] args)
        {
            // 五参数构造函数
            C obj = new C();
            /*
             * 输出:
             * 我是A的构造函数
             * 我是B的构造函数
             * 我是C的构造函数
             * 我是C的析构函数
             * 我是B的析构函数
             * 我是A的析构函数
             */
        }
/*定义A类*/
        class A {
            private int a;
            // 构造函数
            public A()
            {
                a = 1;
                Console.WriteLine("我是A的构造函数");
            }
            // 析构函数
            ~A(){Console.WriteLine("我是A的析构函数");}
        }
        /*定义B类*/
        class B:A
        {
            private int b;
            // 构造函数
            public B()
            {
                b = 1;
                Console.WriteLine("我是B的构造函数");
            }
            // 析构函数
            ~B() { Console.WriteLine("我是B的析构函数"); }
        }
        /*定义C类*/
        class C : B
        {
            private int c;
            // 构造函数
            public C()
            {
                c = 1;
                Console.WriteLine("我是C的构造函数");
            }
            // 析构函数
            ~C() { Console.WriteLine("我是C的析构函数"); }
        }


2:有参数构造函数


/* C#主要的运行函数,就是main函数 */
        static void Main(string[] args)
        {
            // 有参数构造函数
            F fff = new F(23,34);
            /*
            * 输出:
            * 我是D34
            * 我是F23
            */
        }
        /*定义D类*/
        class D
        {
            public int d;
            // 构造函数
            public D(int d1)
            {
                d = d1;
                Console.WriteLine("我是D{0}",d);
            }
        }
        /*定义F类*/
        class F : D
        {
            public int f;
            // 构造函数
            // 派生类的构造函数除了需要给自身的构造函数传值以外,还需要给上一级传值
            // 基类中若是构造函数需要多个参数,派生类构造函数中的base也要穿多个参数
            public F(int f1,int d1):base(d1)
            {
                f = f1;
                Console.WriteLine("我是F{0}",f);
            }
        }


3:万恶之源object类:


C#中的类都会直接或者间接的继承object类:如果定义类的时候没有指定基类,那么C#默认继承object类。


QQ图片20220426141848.png

以上为object类中的虚方法。可在使用的时候重写


static void Main(string[] args)
{
     int n = 123456;
     string s = n.ToString();  // string s "123456"
     Console.WriteLine(s);
    AA aa = new AA();
    aa.a = 100;
    string old = aa.a.ToString();  //这里调用的还是object中的方法
    string news = aa.ToString();  // 这里调用的是AA中的ToString方法
}
// 重写ToString类
class AA {
     public int a;
     public override string ToString()
     {
        return "我是" + a;
     }
}


这里只是简单看了一下object类中的一点小知识。



目录
相关文章
|
2月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
86 2
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
117 4
|
2月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
107 20
|
2月前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
15 0
|
4月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
3月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
29 2
|
3月前
|
Python
类与面向对象编程(Object-Oriented Programming, OOP)
类与面向对象编程(Object-Oriented Programming, OOP)
25 0
|
4月前
|
Java C# 索引
C# 面向对象编程(一)——类
C# 面向对象编程(一)——类
36 0
|
4月前
|
开发框架 .NET 编译器
C# 中的记录(record)类型和类(class)类型对比总结
C# 中的记录(record)类型和类(class)类型对比总结