• 每日一测5(关于继承)


    继承、封装和多态是面向对象编程的重要特性。
    其成员被继承的类叫基类(或父类),继承其成员的类叫派生类(或子类)。

    1、子类隐式获得父类的除构造函数和析构函数以外的所有成员(包括私有和非私有)。

    2、继承的单一性:c#不支持多重继承,子类只能有一个直接父类,但一个父类可以同时拥有多个子类。

    3、继承的传递性:即 B继承自A,C又继承自B,那么C一般拥有A类所有的成员。

    4、子类创建的时候会默认调用父类的无参构造函数,如果父类不存在无参构造函数则报错。 如需要调用指定的父类构造函数,用base关键字(每日一测2里有例子)。

    5、当子类和父类有同名方法时, 子类的方法会覆盖父类的方法吗?

        class Person
        {
            public void song()
            {
                Console.WriteLine("我是父类的方法");
            }
        }
    
        class Chinese:Person
        {
            public void song()  //编译器会提示隐藏, 在void前面用new修饰即可
            {
                Console.WriteLine("我是子类的方法");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                Person p = new Chinese(); //父类变量指向子类对象
                p.song();
    
                Chinese cp = new Chinese();
                cp.song();
                Console.ReadKey();
            }
        }

    运行结果为: 

    当父类的song方法用virtual修饰, 子类的song用override修饰的时候,运行结果2个均为我是子类的方法

  • 相关阅读:
    oracle python操作 增删改查
    python连接oracle
    opengl问题
    [转]C++ 获取文件夹下的所有文件名
    @RequestMapping[转]
    hdu 6082
    maven/ssm框架搭建
    windows下mysql解压版安装及centos下mysql root密码忘记
    maven创建web项目
    eclipse用tomcat发布网站的目录
  • 原文地址:https://www.cnblogs.com/jolins/p/4153681.html
Copyright © 2020-2023  润新知