码迷,mamicode.com
首页 > Web开发 > 详细

0505.Net基础班第十天(面向对象继承)

时间:2015-08-08 17:48:42      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:

1、命名空间 可以认为类是属于命名空间的。 如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的 命名空间。 1)、用鼠标去点 2)、alt+shift+F10 3)、记住命名空间,手动的去引用

2、在一个项目中引用另一个项目的类 1)、添加引用 2)、引用命名空间

3、值类型和引用类型 区别: 1、值类型和引用类型在内存上存储的地方不一样。 2、在传递值类型和传递引用类型的时候,传递的方式不一样。 值类型我们称之为值传递,引用类型我们称之为引用传递。 我们学的值类型和引用类型: 值类型:int、double、bool、char、decimal、struct、enum 引用类型:string、自定义类、数组 存储: 值类型的值是存储在内存的栈当中。 引用类型的值是存储在内存的堆中。

3、字符串 1)、字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。

当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。

2)、我们可以讲字符串看做是char类型的一个只读数组。 ToCharArray();将字符串转换为char数组 new string(char[] chs):能够将char数组转换为字符串

4、字符串提供的各种方法 1)、Length:获得当前字符串中字符的个数 2)、ToUpper():将字符转换成大写形式 3)、ToLower():将字符串转换成小写形式 4)、Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串,可以忽略大小写 5)、Split():分割字符串,返回字符串类型的数组。 6)、Substring():解决字符串。在截取的时候包含要截取的那个位置。 7)、IndexOf():判断某个字符串在字符串中第一次出现的位置,如果没有返回-1、值类型和引用类型在内存上存储的地方不一样。 8)、LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1 9)、StartsWith():判断以....开始 10)、EndsWith():判断以...结束 11)、Replace():将字符串中某个字符串替换成一个新的字符串 12)、Contains():判断某个字符串是否包含指定的字符串 13)、Trim():去掉字符串中前后的空格 14)、TrimEnd():去掉字符串中结尾的空格 15)、TrimStart():去掉字符串中前面的空格 16)、string.IsNullOrEmpty():判断一个字符串是否为空或者为null 17)、string.Join():将数组按照指定的字符串连接,返回一个字符串。

5、继承 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员, 单独的封装到一个类中,作为这些类的父类。 Student、Teacher、Driver  子类  派生类 Person         父类  基类 子类继承了父类,那么子类从父类那里继承过来了什么? 首先,子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。 问题:子类有没有继承父类的构造函数? 答:子类并没有继承父类的构造函数,但是。子类会默认的调用父类无参数的构造函数, 创建父类对象,让子类可以使用父类中的成员。 所以,如果在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了, 子类就调用不到了,所以子类会报错。 解决办法: 1)、在父类中重新写一个无参数的构造函数。 2)、在子类中显示的调用父类的构造函数,使用关键字:base()

 

6、继承的特性 1、继承的单根性:一个子类只能有一个父类。 2、继承的传递性

7、查看类图

8、object是所有类的基类。

9、new关键字 1)、创建对象 2)、隐藏从父类那里继承过来的同名成员。 隐藏的后果就是子类调用不到父类的成员。

 

 

 

 01复习

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace _01复习
 8 {
 9     public class Person
10     {
11         //字段、属性、方法、构造函数
12         //字段:存储数据
13         //属性:保护字段,对字段的取值和设值进行限定
14         //方法:描述对象的行为
15         //构造函数:初始化对象(给对象的每个属性依次的赋值)
16         //类中的成员,如果不加访问修饰符,默认都是private
17         string _name;
18         /// <summary>
19         /// 属性的本质就是两个方法
20         /// </summary>
21         public string Name
22         {
23             get { return _name; }
24             set {
25                 if (value != "孙全")
26                 {
27                     value = "孙全";
28                 }
29                 _name = value; }
30         }
31 
32         int _age;
33         public int Age
34         {
35             get {
36                 if (_age < 0 || _age > 100)
37                 {
38                     return _age = 0;
39                 }
40                 
41                 return _age; }
42             set { _age = value; }
43         }
44 
45         char _gender;
46         public char Gender
47         {
48             get { return _gender; }
49             set { _gender = value; }
50         }
51         //this:当前类的对象
52         //this:调用当前类的构造函数
53         public void SayHello()
54         {
55             string Name = "张三";
56             Console.WriteLine("{0},{1},{2}",this.Name,this.Age,this.Gender);
57         }
58 
59         private static int _id;
60 
61         //静态函数只能够访问静态成员
62         public static void SayHelloTwo()
63         {
64            
65             Console.WriteLine("Hello 我是静态的");
66         }
67 
68         //构造函数:1、没有返回值 连void也没有
69                   //2、构造函数的名称跟类名一样
70 
71         public Person(string name,int age,char gender)
72         {
73             this.Name = name;
74             this.Age = age;
75             if (gender !=  && gender != )
76             {
77                 gender = ;
78             }
79             this.Gender = gender;
80         }
81 
82         public Person(string name, char gender):this(name,0,gender)
83         {
84             //this.Name = name;
85             //this.Gender = gender;
86         }
87 
88         public Person()
89         { 
90             
91         }
92 
93     }
94 }
View Code
技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace _01复习
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Person zsPerson = new Person("张三",-18,);
14             zsPerson.SayHello();
15             Person.SayHelloTwo();
16             Console.ReadKey();
17             //new:1、在内存中开辟一块空间  2、在开辟的创建对象 3、调用对象的构造函数
18         }
19     }
20 }
View Code

02、命名空间

技术分享
 1 using System;
 2 using System.Linq;
 3 using System.Text;
 4 using System.Collections.Generic;
 5 using System.Threading.Tasks;
 6 using System.IO;
 7 using _01复习;
 8 namespace _02_命名空间
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             Person zsPerson = new Person();
15             zsPerson.Name = "张三";
16             Console.WriteLine(zsPerson.Name);
17             Console.ReadKey();
18 
19             //A--->ProjectA---顾客类
20             //B--->ProjcetB---顾客类
21             //C-->ProjectC---顾客类
22         }
23     }
24 }
View Code

03值类型和引用类型

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace _03值类型和引用类型
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13            
14         }
15     }
16 }
View Code

04字符串

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace _04字符串
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int a = 16;
14             int b = 17;
15             //字符串的不可变性
16             //string name = "张三";
17             //name = "孙全";
18             //Console.WriteLine(name);
19             //Console.ReadKey();
20 
21             //string s1 = "张三";
22             //string s2 = "张三";
23             //Console.ReadKey();
24 
25             //可以讲string类型 看做是char类型的一个只读数组
26             string s = "abcdefg";
27             s = "bbcdefg";
28             // s[0] = ‘b‘;不能这样做  因为是只读的
29             //首先将字符串转换为char类型的数组
30             char[] chs = s.ToCharArray();
31             chs[0] = b;
32             //将字符数组转换为我们的字符串
33             s = new string(chs);
34             //既然可以将string看做char类型的只读数组,所以我可以通过下标去访问字符串中的某一个元素
35             Console.WriteLine(s[0]);
36             Console.WriteLine(s);
37             Console.ReadKey();
38         }
39     }
40 }
View Code

05StringBuilder

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Diagnostics;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 
 8 namespace _05StringBuilder
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             StringBuilder sb = new StringBuilder();
15             string str = null;
16             //创建了一个计时器,用来记录程序运行的时间
17             //00:00:00.0422166
18             Stopwatch sw = new Stopwatch();
19             sw.Start();//开始计时
20             for (int i = 0; i < 100000; i++)
21             {
22                 //str += i;
23                 sb.Append(i);
24             }
25             sw.Stop();//结束计时
26             Console.WriteLine(sb.ToString());
27             Console.WriteLine(sw.Elapsed);
28             Console.ReadKey();
29 
30 
31 
32 
33         }
34     }
35 }
View Code

06字符串的各种方法

技术分享
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace _06字符串的各种方法
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //练习一:随机输入你心中想到的一个名字,然后输出它的字符串长度  length:可以得字符串的长度
 14             //console.writeline("请输入你心中想的那个人的名字");
 15             //string name = console.readline();
 16             //console.writeline("你心中想的人的名字的长度是{0}",name.length);
 17             //console.readkey();
 18 
 19 
 20             //Console.WriteLine("请输入你喜欢的课程");
 21             //string lessonOne = Console.ReadLine();
 22             ////将字符串转换成大写
 23             ////  lessonOne = lessonOne.ToUpper();
 24             ////将字符串转换成小写形式
 25             //// lessonOne = lessonOne.ToLower();
 26             //Console.WriteLine("请输入你喜欢的课程");
 27             //string lessonTwo = Console.ReadLine();
 28             ////   lessonTwo = lessonTwo.ToUpper();
 29             ////   lessonTwo = lessonTwo.ToLower();
 30             //if (lessonOne.Equals(lessonTwo,StringComparison.OrdinalIgnoreCase))
 31             //{
 32             //    Console.WriteLine("你们俩喜欢的课程相同");
 33             //}
 34             //else
 35             //{
 36             //    Console.WriteLine("你们俩喜欢的课程不同");
 37             //}
 38             //Console.ReadKey();
 39 
 40 
 41             //string s = "a b   dfd _   +    =  ,,, fdf ";
 42             ////分割字符串Split
 43             //char[] chs = { ‘ ‘, ‘_‘, ‘+‘, ‘=‘, ‘,‘ };
 44             //string[] str = s.Split(chs, StringSplitOptions.RemoveEmptyEntries);
 45             //Console.ReadKey();
 46 
 47 
 48             //练习:从日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。
 49             //让用户输入一个日期格式如:2008-01-02,你输出你输入的日期为2008年1月2日
 50 
 51             //string s = "2008-08-08";
 52             ////char[] chs = { ‘-‘ };
 53             //string[] date = s.Split(new char[] { ‘-‘ }, StringSplitOptions.RemoveEmptyEntries);
 54             //Console.WriteLine("{0}年{1}月{2}日", date[0], date[1], date[2]);
 55             //Console.ReadKey();
 56             //老赵
 57 
 58             //string str = "国家关键人物老赵";
 59             //if (str.Contains("老赵"))
 60             //{
 61             //    str = str.Replace("老赵", "**");
 62             //}
 63             //Console.WriteLine(str);
 64             //Console.ReadKey();
 65 
 66 
 67             //Substring 截取字符串
 68 
 69             //string str = "今天天气好晴朗,处处好风光";
 70             //str = str.Substring(1,2);
 71             //Console.WriteLine(str);
 72             //Console.ReadKey();
 73 
 74             //string str = "今天天气好晴朗,处处好风光";
 75             //if (str.EndsWith("风"))
 76             //{
 77             //    Console.WriteLine("是的");
 78             //}
 79             //else
 80             //{
 81             //    Console.WriteLine("不是的");
 82             //}
 83             //Console.ReadKey();
 84 
 85 
 86             //string str = "今天天天气好晴朗,天天处天好风光";
 87             //int index = str.IndexOf(‘哈‘,2);
 88             //Console.WriteLine(index);
 89             //Console.ReadKey();
 90 
 91 
 92             //string str = "今天天气好晴朗,处处好风光";
 93             //int index = str.LastIndexOf(‘天‘);
 94             //Console.WriteLine(index);
 95             //Console.ReadKey();
 96 
 97 
 98             ////LastIndexOf  Substring
 99             //string path = @"c:\a\b\c苍\d\e苍\f\g\\fd\fd\fdf\d\vfd\苍老师苍.wav";
100             //int index = path.LastIndexOf("\\");
101             //path = path.Substring(index + 1);
102             //Console.WriteLine(path);
103             //Console.ReadKey();
104 
105 
106 
107              //string str = "            hahahah          ";
108              //str = str.Trim();
109             // //str = str.TrimStart();
110             // str = str.TrimEnd();
111             // Console.Write(str);
112             // Console.ReadKey();
113 
114             //string str = "";
115             //if (string.IsNullOrEmpty(str))
116             //{
117             //    Console.WriteLine("是的");
118             //}
119             //else
120             //{
121             //    Console.WriteLine("不是");
122             //}
123             string[] names = { "张三", "李四", "王五", "赵六", "田七" };
124             ////张三|李四|王五|赵六|田七
125             string strNew = string.Join("|", names);
126             Console.WriteLine(strNew);
127             Console.ReadKey();
128 
129 
130 
131 
132         }
133     }
134 }
View Code

07字符串的练习

技术分享
  1 using System;
  2 using System.Collections.Generic;
  3 //using System.IO;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7 using System.IO;
  8 
  9 namespace _07字符串的练习
 10 {
 11     class Program
 12     {
 13         static void Main(string[] args)
 14         {
 15             //课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"
 16 
 17             //string str = "abcdefg";//ggedcba
 18             //char[] chs = str.ToCharArray();
 19             //Array.Reverse(chs);
 20             //string a = chs[0].ToString();//字符数组转化为string不能用tostring方法
 21             //for (int i = 0; i < chs.Length / 2; i++)
 22             //{
 23             //    char temp = chs[i];
 24             //    chs[i] = chs[chs.Length - 1 - i];
 25             //    chs[chs.Length - 1 - i] = temp;
 26             //}
 27 
 28             //str = new string(chs);
 29             //for (int i = 0; i < chs.Length; i++)
 30             //{
 31             //    Console.WriteLine(chs[i]);
 32             //}
 33             //Console.WriteLine(str);
 34             //Console.ReadKey();
 35 
 36 
 37             //倒叙循环
 38             //for (int i = str.Length - 1; i >= 0; i--)
 39             //{
 40             //    Console.Write(str[i]);
 41             //}
 42 
 43             //"hello c sharp"→"sharp c hello"
 44             //string str = "hello c sharp";
 45             //string[] strNew = str.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
 46             //for (int i = 0; i < strNew.Length / 2; i++)
 47             //{
 48             //    string temp = strNew[i];
 49             //    strNew[i] = strNew[strNew.Length - 1 - i];
 50             //    strNew[strNew.Length - 1 - i] = temp;
 51             //}
 52 
 53             //str = string.Join(" ", strNew);
 54             //Console.WriteLine(str);
 55             ////string.join:将字符串按照指定的分隔符连接
 56             ////Console.WriteLine(strNew);//sharp c hello
 57             //// sharp c hello
 58 
 59             //for (int i = 0; i < strNew.Length; i++)
 60             //{
 61             //    Console.WriteLine(strNew[i]);
 62             //}
 63             //Console.ReadKey();
 64             
 65             //string str = "hello c sharp";
 66             //string[] strNew = str.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
 67             //Array.Reverse(strNew);
 68             //str = string.Join(" ", strNew);
 69             //Console.WriteLine(str);
 70             //Console.ReadKey();
 71 
 72             //课上练习3:从Email中提取出用户名和域名:abc@163.com。
 73             //string email = "285014478@qq.com";
 74             //int index = email.IndexOf(‘@‘);
 75             //string userName = email.Substring(0, index);
 76             //string yuMing = email.Substring(index+1);
 77             //Console.WriteLine(yuMing);
 78             //Console.WriteLine(userName);
 79 
 80 
 81             //Console.ReadKey();
 82 
 83 
 84 
 85 
 86 
 87 
 88 
 89 
 90 
 91 
 92             //课上练习4:文本文件中存储了多个文章标题、作者,
 93             //标题和作者之间用若干空格(数量不定)隔开,每行一个,
 94             //标题有的长有的短,输出到控制台的时候最多标题长度10,
 95             //如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
 96 
 97 
 98             //string path = @"C:\Users\SpringRain\Desktop\1.txt";
 99             //string[] contents = File.ReadAllLines(path, Encoding.Default);
100             //for (int i = 0; i < contents.Length; i++)
101             //{
102             //    string[] strNew = contents[i].Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
103             //    Console.WriteLine((strNew[0].Length>10?strNew[0].Substring(0,8)+"......":strNew[0])+"|"+strNew[1]);
104             //}
105             //Console.ReadKey();
106 
107 
108             //历史就是这么回事儿|袁腾飞
109             //c#基础之循环结构while、do-while|老赵
110             //AV|苍老师
111             //坏蛋是怎样炼成的怎样炼成的|六道
112 
113 
114             //让用户输入一句话,找出所有e的位置
115             //string str = "咳嗽、咳嗽 哈哈咳嗽 咳 咳  咳嗽";
116             //for (int i = 0; i < str.Length; i++)
117             //{
118             //    if (str[i] == ‘e‘)
119             //    {
120             //        Console.WriteLine(i);
121             //    }
122             //}
123             //Console.ReadKey();
124 
125             //string str = "afeeefefofoeefe";
126             //int index = str.IndexOf("ef");
127             //Console.WriteLine("第1次出现e的位置是{0}", index);
128             ////循环体:从上一次出现e的位置加1的位置找下一次e出现的位置
129             ////循环条件:index!=-1
130             //int count = 1;//用来记录e出现的次数
131             //while (index != -1)
132             //{
133             //    count++;
134             //    index = str.IndexOf("ef", index + 1);
135             //    if (index == -1)
136             //    {
137             //        break;
138             //    }
139             //    Console.WriteLine("第{0}次出现ef的位置是{1}", count, index);
140             //}
141             //Console.ReadKey();
142 
143 
144 
145             //用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:老牛很邪恶,输出后变成老牛很**;
146             //string str = "老牛很邪恶";
147             //if (str.Contains("邪恶"))
148             //{
149             //    str = str.Replace("邪恶", "**");
150             //}
151             //Console.WriteLine(str);
152             //Console.ReadKey();
153 
154             //把{“诸葛亮”,”鸟叔”,”卡卡西”,”卡哇伊”}变成诸葛亮|鸟叔|卡卡西|卡哇伊,然后再把|切割掉
155             string[] names = { "诸葛亮", "鸟叔", "卡卡西", "卡哇伊" };
156             string str = string.Join("|", names);
157             string[] strNew = str.Split(new char[] { | }, StringSplitOptions.RemoveEmptyEntries);
158             Console.WriteLine(strNew.ToString());
159             Console.ReadKey();
160         }
161     }
162 }
View Code

08继承

技术分享
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace _08继承
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //Student s = new Student();
 14 
 15             //Driver d = new Driver();
 16             Student s = new Student("学生", 18, , 101);
 17         }
 18     }
 19 
 20     public class Person
 21     {
 22         private string _name;
 23 
 24         public string Name
 25         {
 26             get { return _name; }
 27             set { _name = value; }
 28         }
 29 
 30         private int _age;
 31 
 32         public int Age
 33         {
 34             get { return _age; }
 35             set { _age = value; }
 36         }
 37 
 38         private char _gender;
 39 
 40         public char Gender
 41         {
 42             get { return _gender; }
 43             set { _gender = value; }
 44         }
 45 
 46         public void CHLSS()
 47         {
 48             Console.WriteLine("吃喝拉撒睡");
 49         }
 50 
 51 
 52 
 53         public Person(string name, int age, char gender)
 54         {
 55             this.Name = name;
 56             this.Age = age;
 57             this.Gender = gender;
 58         }
 59 
 60         //public Person()
 61         //{
 62 
 63         //}
 64 
 65 
 66     }
 67     public class Student : Person
 68     {
 69 
 70         public Student(string name, int age, char gender, int id)
 71             : base(name, age, gender)
 72         {
 73             //this.Name = name;
 74             //this.Age = age;
 75             //this.Gender = gender;
 76             this.Id = id;
 77         }
 78 
 79 
 80         private int _id;
 81 
 82         public int Id
 83         {
 84             get { return _id; }
 85             set { _id = value; }
 86         }
 87 
 88 
 89 
 90         public void Study()
 91         {
 92             Console.WriteLine("学生会学习");
 93         }
 94     }
 95     public class Teacher :Person
 96     {
 97 
 98         public Teacher(string name, int age, char gender, double salary)
 99             : base(name, age, gender)
100         {
101             this.Salary = salary;
102         }
103 
104         private double _salary;
105         public double Salary
106         {
107             get { return _salary; }
108             set { _salary = value; }
109         }
110         public void Teach()
111         {
112             Console.WriteLine("老师会讲课");
113         }
114     }
115     public class Driver:Person
116     {
117 
118         public Driver(string name, int age, char gender, int driveTime)
119             : base(name, age, gender)
120         {
121             this.DirveTime = driveTime;
122         }
123 
124 
125         private int _dirveTime;
126         public int DirveTime
127         {
128             get { return _dirveTime; }
129             set { _dirveTime = value; }
130         }
131         public void Drive()
132         {
133             Console.WriteLine("司机会开车");
134         }
135     }
136 
137 
138 
139 }
View Code

09继承练习

技术分享
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace _09继承练习
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //记者:我是记者  我的爱好是偷拍 我的年龄是34 我是一个男狗仔
 14             //司机:我叫舒马赫 我的年龄是43 我是男人  我的驾龄是 23年
 15             //程序员:我叫孙全 我的年龄是23 我是男生 我的工作年限是 3年
 16 
 17             Reporter rep = new Reporter("狗仔", 34, , "偷拍");
 18 
 19             rep.ReporterSayHello();
 20 
 21 
 22             Programmer pro = new Programmer("程序猿", 23, , 3);
 23             pro.ProgrammerSayHello();
 24 
 25             Console.ReadKey();
 26 
 27 
 28 
 29         }
 30     }
 31 
 32     public class Person
 33     {
 34         private string _name;
 35         public string Name
 36         {
 37             get { return _name; }
 38             set { _name = value; }
 39         }
 40         private int _age;
 41         public int Age
 42         {
 43             get { return _age; }
 44             set { _age = value; }
 45         }
 46         private char _gender;
 47         public char Gender
 48         {
 49             get { return _gender; }
 50             set { _gender = value; }
 51         }
 52 
 53 
 54         public Person(string name, int age, char gender)
 55         {
 56             this.Name = name;
 57             this.Age = age;
 58             this.Gender = gender;
 59         }
 60     }
 61 
 62 
 63     public class Reporter : Person
 64     {
 65         public Reporter(string name, int age, char gender, string hobby)
 66             : base(name, age, gender)
 67         {
 68             this.Hobby = hobby;
 69         }
 70 
 71 
 72         private string _hobby;
 73 
 74         public string Hobby
 75         {
 76             get { return _hobby; }
 77             set { _hobby = value; }
 78         }
 79 
 80         public void ReporterSayHello()
 81         {
 82             Console.WriteLine("我叫{0},我是一名狗仔,我的爱好是{1},我是{2}生,我今年{3}岁了",this.Name,this.Hobby,this.Gender,this.Age);
 83         }
 84     }
 85 
 86 
 87     public class Programmer : Person
 88     {
 89         private int _workYear;
 90 
 91         public int WorkYear
 92         {
 93             get { return _workYear; }
 94             set { _workYear = value; }
 95         }
 96 
 97         public void ProgrammerSayHello()
 98         {
 99             Console.WriteLine("我叫{0},我是一名程序猿,我是{1}生,我今年{2}岁了,我的工作年限是{3}年",this.Name,this.Gender,this.Age,this.WorkYear);
100         }
101 
102 
103         public Programmer(string name, int age, char gender, int workYear)
104             : base(name, age, gender)
105         {
106             this.WorkYear = workYear;
107         }
108     }
109 
110 }
View Code

10关键字 new

技术分享
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace _10关键字_new
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             Reporter rep = new Reporter("记者", 11, , "偷拍");
 14             rep.SayHello();
 15             rep.Test();
 16             Console.ReadKey();
 17         }
 18     }
 19 
 20     public class Person
 21     {
 22         private string _name;
 23         public string Name
 24         {
 25             get { return _name; }
 26             set { _name = value; }
 27         }
 28         private int _age;
 29         public int Age
 30         {
 31             get { return _age; }
 32             set { _age = value; }
 33         }
 34         private char _gender;
 35         public char Gender
 36         {
 37             get { return _gender; }
 38             set { _gender = value; }
 39         }
 40 
 41 
 42         public Person(string name, int age, char gender)
 43         {
 44             this.Name = name;
 45             this.Age = age;
 46             this.Gender = gender;
 47         }
 48 
 49         public void Test()
 50         {
 51             Console.WriteLine("测试");
 52         }
 53 
 54         public void SayHello()
 55         {
 56             Console.WriteLine("大家好,我是人类");
 57         }
 58     }
 59 
 60 
 61     public class Reporter : Person
 62     {
 63         public Reporter(string name, int age, char gender, string hobby)
 64             : base(name, age, gender)
 65         {
 66             this.Hobby = hobby;
 67         }
 68 
 69 
 70         private string _hobby;
 71 
 72         public string Hobby
 73         {
 74             get { return _hobby; }
 75             set { _hobby = value; }
 76         }
 77 
 78         public void ReporterSayHello()
 79         {
 80             Console.WriteLine("我叫{0},我是一名狗仔,我的爱好是{1},我是{2}生,我今年{3}岁了", this.Name, this.Hobby, this.Gender, this.Age);
 81         }
 82 
 83 
 84         public new void SayHello()
 85         {
 86             Console.WriteLine("大家好,我是记者");
 87         }
 88     }
 89 
 90 
 91     public class Programmer : Person
 92     {
 93         private int _workYear;
 94 
 95         public int WorkYear
 96         {
 97             get { return _workYear; }
 98             set { _workYear = value; }
 99         }
100 
101         public void ProgrammerSayHello()
102         {
103             Console.WriteLine("我叫{0},我是一名程序猿,我是{1}生,我今年{2}岁了,我的工作年限是{3}年", this.Name, this.Gender, this.Age, this.WorkYear);
104         }
105 
106 
107         public Programmer(string name, int age, char gender, int workYear)
108             : base(name, age, gender)
109         {
110             this.WorkYear = workYear;
111         }
112 
113 
114         public new void SayHello()
115         {
116             Console.WriteLine("大家好,我是程序员");
117         }
118     }
119 }
View Code

 

0505.Net基础班第十天(面向对象继承)

标签:

原文地址:http://www.cnblogs.com/liuslayer/p/4713413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!