zoukankan      html  css  js  c++  java
  • C#继承

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _04OOP继承
    {
    //继承:好处:减少代码的冗余
    //子类继承了父类的属性和方法,并没有继承私有字段
    //子类并没有继承父类的构造函数,而是会去调用父类那个五参数的构造函数
    //目的:为了初始化父类,能够让子类调用到父类中的成员。

    //当你在父类中重写了有参数的构造函数之后,那个无参数的构造函数就被干掉了
    //此时,子类调不到了,解决办法:
    //1、在父类总重新写一个无参数的构造函数
    //2、在子类中显示的调用父类的构造函数 :base 减少代码冗余

    //base:1、显示的调用父类的构造函数;2、调用父类中的重名方法
    class Program
    {
    static void Main(string[] args)
    {
    /*
    * Student--派生类
    * 姓名 性别 年龄 学号 吃喝拉撒睡 学习
    * Teacher--派生类
    * 姓名 性别 年龄 工资 吃喝拉撒睡 讲课
    * Driver--派生类
    * 姓名 性别 年龄 驾龄 吃喝拉撒睡 开车
    *
    * 姓名 性别 年龄 吃喝拉撒睡 是共有的放在Person类中---基类
    *
    */
    Student s = new Student();

    }
    }
    public class Person
    {
    string _name;
    public string Name
    {
    get { return _name; }
    set { _name = value; }
    }
    int _age;
    public int Age
    {
    get { return _age; }
    set { _age = value; }
    }
    char _gender;
    public char Gender
    {
    get { return _gender; }
    set { _gender = value; }
    }
    public void CHLSS()
    {
    Console.WriteLine("人类可以吃喝拉撒睡!");
    }
    public Person(string name,int age,char gender)
    {
    this.Name = name;
    this.Age = age;
    this.Gender = gender;
    }
    public Person()
    {

    //}

    }
    public class Teacher : Person
    {
    public Teacher(string name,int age,char gender,double salary):base(name,age,gender)
    {
    this.Salary=salary;
    }
    double _salary;

    public double Salary
    {
    get { return _salary; }
    set { _salary = value; }
    }
    public void Teach()
    {
    Console.WriteLine("教师会讲课");
    }

    }
    public class Student : Person
    {
    public Student(string name,int age,char gender,int id):base(name,age,gender)
    {
    this.ID=id;
    }

    int _id;

    public int ID
    {
    get { return _id; }
    set { _id = value; }
    }
    public void Study()
    {
    Console.WriteLine("学生会学习!");
    }

    }
    public class Driver : Person
    {
    public Driver(string name,int age,char gender,int driveTime):base(name,age,gender)
    {
    this.DriverTime=driveTime;
    }
    int _driverTime;

    public int DriverTime
    {
    get { return _driverTime; }
    set { _driverTime = value; }
    }
    public void Drive()
    {
    Console.WriteLine("司机会开车");
    }
    }
    }

  • 相关阅读:
    微信小程序 开发 微信开发者工具 快捷键
    .NET 4.0 任务(Task)
    MVC UpdateModel的未能更新XXXXX的类型模型
    ORACLE 定时执行存储过程
    DotNet 资源大全中文版(Awesome最新版)
    基于SignalR实现B/S系统对windows服务运行状态的监测
    Method not found: '!!0[] System.Array.Empty()'.
    MVC-RedirectToAction跳转到其他Area
    C# where用法
    C#委托的介绍(delegate、Action、Func、predicate)
  • 原文地址:https://www.cnblogs.com/tsh292278/p/9023743.html
Copyright © 2011-2022 走看看