C#面向对象继承学习笔记(1)

2021-01-03  本文已影响0人  Arabid

1.当类没有继承于其它类时,都继承于object类;object类是所有类的基类。
2.继承方法:

public class 类名 : 继承的类名

例:

public class person{
  private string _name;
  public string Name{
    get{return _name}
    set{_name = value}  //封装字段
  }
  public person(string name){
    this.Name = name;  //使用构造函数初始化
  }
public class teacher : person{
private string _lesson;
  public string Lesson{
    get{return _lesson}
    set{_lesson = value}  //封装字段
  }
  public teacher(string name,string lesson) : base(name){  //base标定父类变量,本函数是构造函数,用于初始化
  this.Lesson = lesson
  }
}

3.new关键字

new用于创建对象

(1)使用:

类名 要把类赋值的变量名  = new 类名

例:

Teacher kivlnen = new Teacher

或:

类名 要把类赋值的变量名  = new 类名(构造函数 参数1,构造函数 参数2,...)

例:

Teacher kivlnen = new Teacher("kivlnen","English")

(2)子类隐藏父类方法
如果有这么一段代码:

_namespace codeo{
  public class person{
    public void sayhello{ 
      Console.WriteLine("我是人")
  }
   }
  public class teacher : person{
    public void sayhello{
      Console.WriteLine("我是老师")
    }
  }
}

那么我们在teacher类调用sayhello时会使用teacher类的sayhello,而不是它所继承的person的sayhello,同时还会报警告。
这时我们需要在子类函数前加一个"new"来起到隐藏父类重名方法的作用:

_namespace codeo{
  public class person{
    public void sayhello{ 
      Console.WriteLine("我是人")
  }
   }
  public class teacher : person{
    public new void sayhello{
      Console.WriteLine("我是老师")
    }
  }
}
上一篇 下一篇

猜你喜欢

热点阅读