返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 1956|回复: 0

[原创] 【原创】继承的讲解

[复制链接]
发表于 2021-1-24 17:16:23 | 显示全部楼层 |阅读模式
本帖最后由 da11 于 2021-1-27 23:08 编辑

//主Main:
namespace test5_继承_static_结构体
{
    class Program
    {
        //本项目讲解继承、static(静态修饰符)、结构体
        static void Main1(string[] args)
        {

            Stu Stu01 = new Stu();
            //Stu类是JiChengClass类的子类,是没有name属性的,name属性在JiChengClass类中
            //继承的现象是:
            //子类可以使用父类成员            
            Stu01.name = "testStu01";
            Stu01.age=13;

            //父类只能使用父类成员
            JiChengClass test = new JiChengClass();
            test.name="jicheng test";

            //子类也可以使用自己的子类成员
            Stu01.stuLevel = "A";

            //父类型的引用指向子类的对象,只能使用父类成员
            JiChengClass test01 = new Stu();

            test01.name = "111";

            //如果强制使用子类成员,则必须将对象强制转换为Stu类型
            Stu test02 = (Stu)test01;
            test02.stuLevel = "A";

            //以下这句语句会报异常,子类成员和子类成员不能显示转换
            //Teacher test03 = (Teacher)test01;

            //以下这句语句,如果转换失败,不会抛出异常,但是test03这个对象会为null
            Teacher test03 = test01 as Teacher;

            //在为null的情况下,赋值是会报“NullReferenceException(未将对象引用设置到对象的实例)”
            //等于是null.teacherLevel = "A";
            //这个异常在unity报的是英文
            //所以需要使用加if判断是否为null才继续执行赋值操作。
            if (test03!=null)
            {
                test03.teacherLevel = "A";
            }


            Console.WriteLine(Stu01.name +" "+ Stu01.age);
            Console.ReadLine();
        }
    }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
 楼主| 发表于 2021-1-24 17:17:43 | 显示全部楼层
//继承类JiChengClass.cs
namespace test5_继承_static_结构体
{
    /// <summary>
    /// 定义一个继承类
    /// </summary>
    //继承类(父类)里面的访问级别说明及含义:
    //public:公开,所有类都可以联动此字段、属性、方法、构造函数
    //private:私有:所有类都不可以联动此字段、属性、方法、构造函数
    //protected:受保护的:只有联动的子类和本父类可以使用此字段、属性、方法、构造函数
    //↑,如果Main没有联动此父类,也是不可以使用的
    class JiChengClass
    {
        /// <summary>
        /// 名字
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 年龄
        /// </summary>
        public int age { get; set; }
    }
}

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-24 17:18:14 | 显示全部楼层
//定义一个学生类:Stu.cs
namespace test5_继承_static_结构体
{
    /// <summary>
    /// 定义一个学生类
    /// </summary>

    //联动继承类需要在类名后面加冒号及继承类名,如:class 类名:需要联动的继承类名
    class Stu:JiChengClass
    {
        //定义自动属性语法:prop + tab + tab 补全
        /// <summary>
        /// 学生的成绩等级
        /// </summary>
        public string stuLevel { get; set; }


    }
}

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-24 17:18:49 | 显示全部楼层
//定义一个教师类:Teacher.cs
namespace test5_继承_static_结构体
{
    /// <summary>
    /// 定义一个老师类
    /// </summary>
    class Teacher:JiChengClass
    {
        /// <summary>
        /// 老师的等级
        /// </summary>
        public string teacherLevel { get; set; }
    }
}

回复 支持 反对

使用道具 举报

游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表