隐藏在暗地里的继承

            ----------继承--------------

--先制作一个Person类作为父类

class Person    //
    {

        public string Name { get; set; }
        public Person() { }
        public Person(string name) {
            this.Name = name;   
        }
       public virtual void Read() {

            Console.WriteLine("zzzzzz");
        
        }
        public void Say() {

            Console.WriteLine("sssss");
        
        }


    }

  

 --值做一个Student类作为Person的子类

 class Student:Person
    {


        public Student() { }


        public Student(string name):base(name){
        
           this.Name =name;
        
        }


        public void Say() {

            Console.WriteLine("22222");
        
        }


        public override void Read() {

            Console.WriteLine("read");
        
        }


    }

当我们在Main方法里面调用 Student实现他的方法时:

首先编译器执行到子类的方法时,不执行,执行的父类方法(给父类的属性赋值) ,回到子类的方法,如果父类的方法没有virtual关键字,编译器默认走子类的方法,特有方法。

我们创建的所有类 默认继承Object类 ,所以我们不用new就可以单纯的调用Object里的方法,最常见的有ToString()

面试题:c#中Object的四个默认方法

   java中Object的默认方法:

   ---equals()

   ---getClass()

   ---hashCode()

   ---notify()

  ---notifyAll()

  ---toString()

  ---






原文地址:https://www.cnblogs.com/zhangyu0217----/p/6566875.html