首页 > 其他分享 >继承

继承

时间:2023-03-21 16:15:02浏览次数:32  
标签:继承 子类 System using 父类 public 构造函数

封装:可以想象成遥控器,你不需要知道它内部怎么实现的,它封装好你拿来就能用就行了

继承:把这几个类重复的成员单独拿出来封装成一个类,作为它们几个共同的父类

继承的特性:

单根性:只能有一个父类(基类)

传递性:孙子可以用父亲的、爷爷的、祖爷爷的属性(查看类图看它们之间的关系,视图 - 查看类图)

 

 

父类Person

复制代码
using System;
using System.Collections.Generic;
using System.Text;

namespace 继承
{
    public class Person
    {
        private string _name;
        private int _age;
        private char _gender;
       
        public string Name { get => _name; set => _name = value; }
        public int Age { get => _age; set => _age = value; }
        public char Gender { get => _gender; set => _gender = value; }
        
        public void CHLSS()
        {
            Console.WriteLine("吃喝拉撒睡");
        }
    }
}
复制代码

子类Student

复制代码
using System;
using System.Collections.Generic;
using System.Text;

namespace 继承
{
    public class Student:Person
    {
        private int id;
        
        public int Id { get => id; set => id = value; }

        public void Study()
        {
            Console.WriteLine("学生会学习");
        }
    }
}
复制代码

在Main方法里执行

复制代码
using System;

namespace 继承
{
    class Program
    {
        static void Main(string[] args)
        {
            Student s = new Student();
            //这4个继承了父类Person的公共部分
            s.Name = "春哥";
            s.Age = 18;
            s.Gender = '男';
            s.CHLSS();
            //这2个是继承了自己那部分
            s.Id = 9;
            s.Study();
        }
    }
    
}
复制代码

 

子类并没有继承父类的构造函数。但是,子类会默认调用无参数的构造函数,在子类内部创建父类对象,这样子类就可以使用父类中的成员了。

所以在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,子类就调用不到了,所以子类会报错。

解决办法:

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

2)在子类中显示显示的调用父类有参的构造函数,使用关键字:base()  //调自己用this,调父类用base

 

 

 

 

 

标签:继承,子类,System,using,父类,public,构造函数
From: https://www.cnblogs.com/chungeblog/p/17240342.html

相关文章

  • 继承基本概念
    是一种代码复用机制,通过继承,一个类(称为派生类或子类)可以继承另一个类(称为基类或父类)的属性和行为。子类继承父类的成员变量、成员函数、构造函数和析构函数等,并且可以在此......
  • C++温故补缺(七):;类的访问控制和继承
    类的访问控制和继承类的静态成员类的静态成员用关键字static修饰,类似静态变量或静态函数,也是有共享的概念类的静态变量:静态变量在类的所有对象中共享,不能再类的定......
  • Java基础知识点(继承中构造方法的的访问特点
    一:概述​1.父类的构造方法不会被子类继承。2.子类中的构造方法默认先访问父类中的无参构造,在执行自己。换句话来说,子类不能得到父类的的构造方法,子类进行构造方法默认先访问......
  • Python基础:面向对象-继承和多态
    一、继承Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性的方法。作用:可以减少代码重复,提升代码复用率。简单示例如下:#父类AclassAni......
  • 面向对象三大特性:封装,继承
    封装:  为什么要隐藏属性:----------------------------------------------------------------------------------------目的的是为了隔离复杂度,例如ATM程序的取款功能......
  • this关键字,多类合作,继承,多类合作的扩展,继承,重写和重载,抽象类声明
    1.this关键字字面意思:​ 这个​ 1.一般写在实体类中。表示的是当前的对象​ 可以使用this调用属性和方法​ 2.this关键字可以调用构造方法(很少用)​ ......
  • UE4/5 如何查看类的继承关系
    问题由来实际开发中常常会碰到以下问题找到某个C++类被那些类所继承那些BP/脚本类继承了某个C++类一些有用的工具Rider看C++类的继承关系Rider在类名右键,(Sh......
  • 哪些css属性可以被继承?
    不可继承的太多了,只需要记住可以继承的元素就行了。可以继承的元素主要有:只有颜色,文字,字体间距行高对齐方式,和列表的样式。具体如下:所有元素可继承:visibility和cursor。......
  • java中的继承
    概念程序中的继承要满足一个前提:isa父类是具有共性的,子类是具有特性的java是单根继承(即一个子类,只能有一个直接父类)好处在子类中在可以获取弗雷哪里可以继承的的方......
  • 继承Thread类
    //程序是由数据和指令组成//进程是程序执行一次的过程,一个进程可以有多个线程//线程是独立执行的路径//创建线程方式:继承Thread类,重写run()方法,调用start开启线程//总结:注......