zoukankan      html  css  js  c++  java
  • 每日一测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个均为我是子类的方法

  • 相关阅读:
    Android 中的selector
    Android 中SimpleDateFormat的使用注意
    Android 和iOS中 View的滚动
    Android 和iOS中 Gesture 和 Touch
    iOS 的UIWindow 类研究
    iOS keyChain 的使用
    关于Intent ,Task, Activity的理解
    Android Broadcast 和 iOS Notification
    Android 程序中得到root activity的引用
    ios中的addChildViewController 和 android中的fragment
  • 原文地址:https://www.cnblogs.com/jolins/p/4153681.html
Copyright © 2011-2022 走看看