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. SQLServer 在Visual Studio的连接方法

    一.Sql Server 在Visual Studio的连接有两种方法: (1)本地计算机连接; [c#] view plaincopy     string s = "Data Sourc ...

  2. selenium IDE处理各种窗口问题解决方法

    一.处理模态窗口:showModalDialog 由于弹出模态窗口后,就无法定位到当前窗口的元素和模态窗口的元素,需要添加js解决 模态窗口动作类似下面语句: <input id="c ...

  3. javascript 内置对象 第17节

    <html> <head> <title>内置对象</title> </head> <body> <div>内置对象 ...

  4. Activiti安装

    1.Activiti下载与简介 1.1  简介 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG), ...

  5. yum --rpm包安装

    rpm -ivh  package -i 表示安装install -v表示显示详细信息, -vv更详细些 -h表示显示安装进度 --force:表示强制安装 --nodeps:忽略依赖关系安装 --r ...

  6. 构建 struts2 spring3 mybatis 的maven项目 构建 pom.xml

    学习maven项目时 搭建个ssm项目 算是给自己留个备份吧 环境说明: MyEclipse10 Maven   3.2.3 框架: struts2    2.3.24.1 spring3    3. ...

  7. html 头部正常用法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. MySQL修改时区的方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式.配置文件方式及代码方式,需要的朋友可以参考下 方法一:通过mysql命令行模式下动态修改 1.1 ...

  9. CentOS6.4 安装aria2多线程下载工具

    aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...

  10. Entity Framework: 视图查询时重复返回第一行值, duplicate frst rows in resultset from a view

    http://blog.csdn.net/riverlau/article/details/7476449 1. 使用rownumber给view加上一个标示列 SELECT ROW_NUMBER() ...