首页 > 其他分享 >春哥博客 - 继承

春哥博客 - 继承

时间:2023-01-30 10:00:59浏览次数:49  
标签:春哥 子类 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/xiaochuncn/p/17074534.html

相关文章

  • 春哥博客 - 里氏转换
    1、里氏转换1)子类可以赋值给父类2)如果父类中装的是子类对象,那么可以将这个父类强转为子类对象usingSystem;namespace里氏转换{classProgram{......
  • 春哥博客 - New关键字
    1、创建对象2、隐藏从父类那里继承过来的同名成员,隐藏的后果就是子类调用不到父类的成员了。子类名称和父类名称写的一样的时候,你就调用不到父类的成员了,如果你故意这么......
  • 春哥博客 - System.ComponentModel.Win32Exception: "指定的可执行文件不是该操作系统
      加上这行代码就行了p.StartInfo.UseShellExecute=true; ......
  • 春哥博客 - 解决某些应用程序阻止了IDM集成到浏览器中的问题
       每次打开IDM都会弹出:某些应用程序阻止了IDM集成到浏览器中的提示,尝试了腾讯管家的截图弹窗拦截,也没奏效 后来卸载重装idm,安装时使用管理员权限来安装,后来重启......
  • 春哥博客 - 方法的重载
    方法名字相同,参数不同,就构成了方法的重载usingSystem;namespace练习{classProgram{staticvoidMain(string[]args){......
  • 春哥博客 - 方法
    方法的作用是可以被反复的调用,减少代码冗余方法的功能一定要单一,一次只完成一件事。usingSystem;namespace练习{classProgram{staticvoidM......
  • 春哥博客 - 面向对象
    我不管你怎么实现的,我拿来就能用,比如遥控器,我管你内部怎么搞的,你给我封装好了,我能用就行了,这是就是面向对象的好处在程序中,我们描述一个对象,就是描述这个对象的属性和方法......
  • 春哥博客 - 方法的递归
    方法的递归,不停的调用它自己,必须写个循环条件,当满足这个循环条件时就跳出循环,跳出循环是一层一层年轮般往外跳的,这就是递归 usingSystem;namespace练习{cla......
  • 春哥博客 - Sublime 插件安装、卸载、更新
    1、PackageControl插件:一个管理插件的插件 PackageControl插件的安装、卸载、更新按下Ctrl+Shift+P,输入PC 选则列表中的InstallPackage选项并回车,即可安装......
  • 春哥博客 - Zblog全站301重定向
    1、静态管理中心-ReWrite规则,创建.htaccess文件创建好在FTP根目录可以看到(FTP看不到的情况是因为隐藏起来了,显示隐藏文件就行了)2、.htaccess文件创建好在FTP根目录里......