class Dianqi //创建电器类:父类
{
private string _Dianqimingzi; public string Dianqimingzi
{
get { return _Dianqimingzi; }
set { _Dianqimingzi = value; }
}
}
  class Computer:Dianqi //创建电脑类:子类
{
private string _Diannaomingzi; public string Diannaomingzi
{
get { return _Diannaomingzi; }
set { _Diannaomingzi = value; }
}
}
class Lenovo:Computer  //创建Lenovo类:子类的子类
{
private string _Lname; public string Lname
{
get { return _Lname; }
set { _Lname = value; }
}
}
namespace 继承Practice
{
class Program
{
static void Main(string[] args)
{ //电器:父类
Dianqi dianqi1 = new Dianqi();
dianqi1.Dianqimingzi = "电器";
Console.WriteLine("电器的名字为"+dianqi1.Dianqimingzi);
//电脑:子类
Computer diannao = new Computer();
diannao.Diannaomingzi = "电脑";
Console.WriteLine("电脑的名字为"+diannao.Diannaomingzi);
//继承了电器属性的电脑
diannao.Dianqimingzi = "继承了电器属性的电脑(子类继承了父类的电器名字的属性)";
Console.WriteLine("电脑子类继承电器父类后的属性为 "+diannao.Dianqimingzi); //Lenovo:子类的子类
Lenovo le = new Lenovo();
le.Lname = "联想电脑";
Console.WriteLine("Lenovo电脑的名字为 "+le.Lname); //继承了电脑属性的Lenovo
Lenovo le1 = new Lenovo();
le1.Diannaomingzi = "联想电脑";
le1.Dianqimingzi = "电器下的电脑为联想";
Console.WriteLine("电脑属性的名字为 "+le1.Diannaomingzi);
Console.WriteLine("电器属性的名字为 " + le1.Dianqimingzi); //子类转父类:子类继承父类,一个子类只能有一个父类,一个父类可以有多个子类。
//子类具备父类的功能和属性,父类不具备子类的。
//子类可以转化为父类,但父类不具备子类的属性和方法。
//比如 猪 可以叫生物, 但生物不可以叫猪。
Computer Com = new Computer();//子类电脑
Dianqi DCom = Com;//子类电脑转换为父类电器
DCom.Dianqimingzi = "子类电脑转换为父类电器后的名字";
Console.WriteLine(DCom.Dianqimingzi); //父类可以转换为子类,但是有前提条件。 前提:父类之前的本质为子类,才可以转换为对应的子类。
Computer aaa = new Computer(); //创建一个子类aaa
Dianqi ddd = aaa;//将子类aaa转换为父类ddd
Computer xxx = (Computer)ddd; //将父类ddd转换为子类xxx
xxx.Dianqimingzi = "父类转换为子类";
Console.WriteLine(xxx.Dianqimingzi); //下面为不符合前提的情况,代码无错,运行会出错。
//Dianqi ddd1 = new Dianqi();
//Computer xxx1 = (Computer)ddd1;
//xxx1.Dianqimingzi = "父类转换为子类(不符合前提的情况)";
//Console.WriteLine(xxx1.Dianqimingzi);
Console.ReadLine();
}
}
}

汉企C#面向对象——继承Practice的更多相关文章

  1. 汉企C#面向对象——继承

    public class Shengwu { private string _Name; public string Name { get { return _Name; } set { _Name ...

  2. 汉企学习4个半月的target and plan

    我自从大学毕业以后,工作飘忽不定,其中也不乏有我自己的原因.IT是我向往的行业,几经波折,我来到了汉企. 9月4号,算是正式与汉企接触的第一天.在这里,我看到了学员的上进,老师的责任心,让我感受颇深. ...

  3. OC面向对象—继承

    OC面向对象—继承 一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). ...

  4. 面向对象继承实例(a如何继承b)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. js面向对象继承

    前言 最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录. js的面向对象 先说说我目前了解的js创建对象方法 1.写一个函数,然后通过new创建对象 2 ...

  6. Php面向对象 – 继承和重写

    Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public  $p_c  ...

  7. Java面向对象 继承(下)

     Java面向对象   继承(下) 知识概要:               (1)抽象类 1.1 抽象类概述                            1.2 抽象类的特点       ...

  8. Java面向对象 继承(上)

       Java面向对象 继承 知识概要:         (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...

  9. js高级-面向对象继承

    一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 ...

随机推荐

  1. com.android.builder.packaging.DuplicateFile

    解决方法:     packagingOptions {        exclude 'META-INF/DEPENDENCIES'        exclude 'META-INF/NOTICE' ...

  2. c语言对于文本的基本操作

    字符读写函数  :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式化读写函数:fscanf和fprinf   1.字符读写: fgetc函 ...

  3. httphandler与httpmodule区别

    1.配置不同: <httpModules> <!--name表示类名,BtEd2k.UILogic表示命名空间--> <add name="Common&quo ...

  4. nvidia安装与卸载方式

    第1种方法:.最好的方式不是手动安装官方驱动(手动安装官方驱动无法使用gpu,而且无法启用3d,同时无法生效,所以最好采用此种方法),而是使用bumblebee-nvidia安装,不过要先添加x-sw ...

  5. swift变量交换赋值

    重点在& func jiaohuan(inout a: Int,inout b: Int) { let temp = a a = b b = temp } jiaohuan(&aa,b ...

  6. 05_Excel操作_03_模拟Web环境的Excel导入

    [思路简述] 本文继续上一篇文章,上一篇中生成了“D://用户列表.xls”的excel文件,我们接下来将这个excel导入,然后显示在控制台上. 工程什么的都同上一篇文章,只是在ExcelServi ...

  7. centOS 多网卡 启动网络 eth0 does not to be present

    centOS 6.4 中 em1 就是eth0... ---------------------------------------- http://www.php-oa.com/2012/03/07 ...

  8. struts2与spring集成时action的class属性值意义

    struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建(依赖注入).这导致在两种情况下struts.xml配置文件的略微差异. ...

  9. [转] HTML5终极备忘大全(图片版+文字版)---张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1544 一.前言兼图片 ...

  10. gulp和webpack初探

    gulp 真正“流程”化工具 我记得实习刚刚进公司看到grunt,还是有点蒙,之前一直是本地开发,游览器F5,没想到前端也需要“编译工具”.所以grunt一直给我的感觉是“编译工具”,你写的很多代码还 ...