c# 继承特点(1)

namespace console_class_继承
{
    class Program
    {
        public static void Main(string[] args)
        {
            
            Dog d = new Dog();
            
            d.run();
            
            new Dog(50);
            Console.ReadKey(true);
        }
    }
    
    
    class Animals{
        
        public Animals(){ //可以不用实现
            Console.WriteLine("我是父类默认构造函数");
        }
        public Animals(string name){
            Console.WriteLine(name);
        }
        
        public virtual void run(){
            
            
            Console.WriteLine(string.Format("class:{0} i`m running", this)); //这里是派生于animal 子类dog指针
            
            
            
            walk();//这里还是通过向上查找原则,找到父类中的实现;
        }
        
        
        protected virtual void walk(){ 
            
            Console.WriteLine("now, i`m walking... father");
        }
    }
    
    
    class Dog: Animals{
        
        public Dog():base("leo"){ //如果没有基类没有默认构造函数,则必须通过base指定对应的构造函数
            Console.WriteLine(111);
        }
//        
        public Dog(int weight):this(50, 100){ //通过this 来调用其他构造,先调用,在执行
            
            Console.WriteLine("调用完this在执行");
        }
        
        public Dog(int weight, int height){
            
            Console.WriteLine("我被其他构造函数通过this来调用了");
            
        }
        public override void run(){
            
            
            base.run();
        }
        
        public void eat(){
            
            Console.WriteLine("跑完就吃...");
        }
//        protected override void walk(){ //我们屏蔽掉这段实现
//            
//            Console.WriteLine("now, i`m walking...");
//        }
    }
    
    //1、子类可以通过base关键字调用基类的属性方法;
    //2、派生类初始化
    //        -> 初始化子类属性,字段
    //        -> 初始化父类子类属性,字段
    //      -> 初始化父类构造器
    //        -> 初始化派生类构造器
    //3、如果派生类没有显试调用基类构造函数,如果基有默认构造则调用默认函数
    //4、如果基类有多个构造函数,但没有默认构造函数,则必须通过派生类base关键字来显式调用
    //5、类中有多个构造,可以通过this在初始化时,调用其他构造函数
}

 

转载于:https://www.cnblogs.com/alplf123/p/10188770.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C是一种常用的编程语言,它由美国贝尔实验室的Dennis Ritchie在20世纪70年代开发出来。C语言是一种结构化的、高级的、通用性强的编程语言,广泛应用于系统软件开发、驱动程序编写和嵌入式系统开发等领域。 C语言具有简洁、高效、可移植的特性。它的语法简单明了,采用自顶向下的编程思想,具有良好的可读性和易于维护性。C语言的代码编译生成机器码的速度很快,执行效率高,能够充分利用计算机的硬件资源。 C语言的语法规范包括基本数据型、运算符、控制结构、函数等。它支持面向过程的编程范式,允许开发者根据具体需求定义自己的函数和数据型,同时也支持面向对象的编程思想,可以使用结构体和指针来模拟和对象。 C语言有丰富的标准库和第三方库,包括输入输出、字符串处理、内存管理、文件操作等功能,开发者可以利用这些库来快速地实现复杂的功能。同时,C语言还支持与汇编语言的混合编程,可以直接调用汇编语言的函数,提高程序的性能。 C语言的应用广泛,几乎所有的操作系统都使用C语言编写,包括Windows、Unix、Linux等。许多著名的软件,如操作系统、数据库、编译器等,都是使用C语言开发的。同时,C语言也是学习其他高级编程语言的基础,如C++、Java、Python等,这些语言都有一定程度上的C语言的语法和特性。 总而言之,C语言是一门重要的编程语言,具有简洁高效、可移植性强的特点,广泛应用于系统软件开发和嵌入式系统开发等领域,是学习其他高级语言的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值