C# 面向对象的base的使用

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

namespace ConsoleApplicationTest
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }

    public class Person
    {
        public string Name { get; set; }

        public int Age { get; set; }

        //父类构造函数
        public Person(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }

    }

    public class Student:Person

    {
        public int Id { get; set; }

        //子类构造函数
        //关键字base的使用:调用父类的构造函数
        public Student(string name,int age,int id):base(name,age)
        {
            this.Id = id;
        }
    }
}

ps:子类有没有继承父类的构造函数???

子类并没有继承父类的构造函数,但是,子类会默认的调用父类的无参的构造函数,

创建父类的对象,让子类可以调用父类的成员。

所以,如果父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,

子类就调用不到了,所以子类会报错。

解决方法:

1)在父类中重新写一个无参数的构造函数

2)在子类中的显示的调用父类的构造函数,使用关键字:base();

时间: 2024-10-12 00:04:53

C# 面向对象的base的使用的相关文章

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

Python 面向对象class(2)

Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们先来简单的了解下面向对象的一些基本特征. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定

2、C#面向对象:封装、继承、多态、String、集合、文件(上)

面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. 打包,便于管理,为了解决大型项目的维护与管理. 三.什么是类? 将相同的属性和相同方法的对象进行封装,抽象出 “类”,用来确定对象具有的属性和方法. 类.对象关系:人是类,张三是人类的对象. 类是抽象的,对象是具体的.对象可以叫做类的实例,类是不站内存的,对象才占内存. 字段是类的状态,方法是类执

C#面向对象基础

面向对象不是取代面向过程的.类.对象."人"是类,"张三"是"人"这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例(Instance).字段Field(和某个对象相关的变量),字段就是类的状态(不同的对象可能不一样的状态就是字段).人这个类有姓名.年龄.身高等字段.类不占内存,对象才占内存.字段描述对象特点的数据.方法Method(函数),方法就是类能够执行的动作,比如问好.吃饭等.  类的继承,类之间可

面向对象之多态的三种方式

多态是面向对象最重要的特征之一,它能使得单一的类变得更多种类.简单来说多态主要有三种形式,分别是虚方法.接口和抽象类,三者各有特点,下面是代码对他们的描述: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //1.virtual method 6 Chinese ch1 = new Chinese("周润发"); 7 Chinese ch2 = new Chinese("刘德华"); 8 Ame

java面向对象基础

思想 面向过程:是分析出解决问题所需的步骤,从上往下步步求精,自顶向下的编程,最重要的是模块化思想,考虑实际的实现 优点:性能高 面向对象:以事物为中心,将事物高度抽象为对象,对象包括属性与行为. 优点:易重用.易扩展.易维护.适合大型项目 联系与区别 联系:面向对象也含有面向过程的思想 区别:面向过程是一件事"该怎么做",面向对象是一件事"该让谁来做" 举例 汽车发动  汽车到站 面向过程  汽车发动与汽车到站分别为两个事件,形成两个函数,依次调用 面向对象  关

Python全栈开发之9、面向对象、元类以及单例

前面一系列博文讲解的都是面向过程的编程,如今是时候来一波面向对象的讲解了 一.简介 面向对象编程是一种编程方式,使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用.类就是一个模板,模板里可以包含多个方法(函数),方法里实现各种各样的功能,,对象则是根据模板创建的实例,通过实例,对象可以执行类中的方法,每个对象都拥有相同的方法,但各自的数据可能不同. 二.类.对象和方法 在Python中,定义类是通过class关键字,class后面紧接着是类名,类名通常

JavaSE入门学习23:Java面向对象之构造方法

学了JavaSE面向对象这一部分,也该对构造方法做一个总结了. 一构造方法 在多数情况下,初始化一个对象的最终步骤是去调用这个对象的构造方法.构造方法负责对象的初始化工作,为 实例变量赋予合适的初始值.构造方法必须满足以下语法规则: (1)方法名必须与类名相同: (2)不要声明返回类型: (3)不能被static.final.synchronized.abstract和native修饰.构造方法不能被子类继承,所以用final和abstract 修饰没有意义.构造方法用于初始化一个新建的对象,所

第15章 面向对象程序设计

面向对象的核心是:数据抽象.继承.动态绑定 数据抽象:将类的接口与实现分离 继承:对类型的相似关系进行定义建模 动态绑定:忽略相似类的区别,统一使用它们的对象 15.2基类与派生类 class Base { public: Base() = default; Base(int value) :value(value){} virtual int get_value() { return value; }; virtual ~Base() = default; private: int value