- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类的继承-网络教育精品资源共享课-上海交通大学-上海交通大学继续.ppt
第4章 面向对象编程方法;第4章 面向对象编程方法;4.3 类的继承、重载与多态; 4.3.1 继承;继承是面向对象编程的又一重要特征
继承基于这样的编程思想:
既可以在程序设计中最大限度利用已有的设计成果,又可以在此基础上使程序设计具有高度的灵活性,使已有的程序设计成果具有可扩充性
继承使得不同的类之间可以共享特性和操作,从而高效地重用代码,提高程序设计的效率
;;;类的继承性是指一个类定义既可以具有其他类的数据成员、属性成员、方法成员等,也可以使其他类具有自己的数据成员、属性成员、方法成员等
在类的继承中
被继承的类叫基类或父类
继承的类叫派生类或子类;基类与派生类;在C#中,类的继承遵循以下规则:;2 定义派生类;定义派生类;(1) 派生类定义格式;以定义Student(学生)类为例;派生类定义如下:
public class Student_1: Student
{
public byte score1,score2;
public uint Total ( )
{
return (uint) score1+(uint) score2;
}
public float Average ( )
{
return (float) (score1+score2)/2;
}
};(2) 创建派生类对象; [例InheritFromStudent] 创建Windows应用程序
在程序中定义基类Student与派生类Student_1
单击“创建”按钮,创建并显示派生类对象的信息;private void button1_Click(object sender, System.EventArgs e)
{
Student_1 s1=new Student_1( ); // 声明派生类对象
s1.id=2005001;s1.name=张三;s1.sex=女;
s1.age=21;s1.score1=99;s1.score2=88;
label1.Text=s1.Show( )+\n总分:+s1.Total().ToString()+ 平均分:+s1.Average( ).ToString( );
};(3) protected修饰符的访问控制作用;按照下面要求修改InheritFromStudent为InheritFromStudent2
基类定义:
public class Student // 基类定义
{
protected string id;
protected string name;
protected string sex;
protected byte age;
}
派生类定义
public class Student_1: Student // 派生类定义
{ private byte score1,score2;
};由于将数据成员声明为protected或private后,类的数据成员不能再直接访问,所以应该添加修改设置数据成员的公共方法
基类数据成员设置方法
public void SetStudent(string idd,string namex,string sexx, byte agex)
{
id=idd;
name=namex;
sex=sexx;
age=agex;
}
派生类数据成员设置方法
public void SetStudent_1(byte scorex1,byte scorex2)
{
score1=scorex1;
score2=scorex2;
};private void button1_Click(object sender, System.EventArgs e)
{
Student_1 subS=new Student_1( );
subS.SetStudent(“2005001”,“张三”,“女”,21);
// 设置派生类继承的基类数据成员值
subS.SetStudent_1(99,88);
// 设置派生类自身数据成员值
label1.Text=subS.Show( )+\n总分:+subS.Total().ToString()+ 平均分:+subS.Average( ).ToString( );
}
输出结果:
学号:2005001 姓名:张三 性别:女 年龄:21
总分:187 平均分:93.5
//其中,第一行是派生类对象调用其继承的基类方法成员输出的结果,第二行为派生类调用其自身方法成员输出的结果;(4) 构造函数的调用;(5) 向基类构造函数传递参数;;向基类构造函数传递参数,必须通过派生类的构造
文档评论(0)