1、c#中的访问修饰符 public :公开的公共的 private:私有的,只能在当前类的内部访问 protected:受保护的,只能在当前类的内部以及该类的子类中访问。 internal:只能在当前项目中访问。在同一个项目中,internal和public的权限是一样。 protected internal:protected+internal

1)、能够修饰类的访问修饰符只有两个:public、internal。 2)、可访问性不一致。 子类的访问权限不能高于父类的访问权限,会暴漏父类的成员。

2、设计模式 设计这个项目的一种方式。

3、简单工厂设计模式

4、值类型在复制的时候,传递的是这个值得本身。    引用类型在复制的时候,传递的是对这个对象的引用。    5、序列化:就是将对象转换为二进制    反序列化:就是将二进制转换为对象    作用:传输数据。   序列化:   1)、将这个类标记为可以被序列化的。     6、partial部分类

7、sealed密封类 不能够被其他类继承,但是可以继承于其他类。  

8、接口 [public] interface I..able {  成员; }            

 

接口是一种规范。 只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员

为了多态。 接口不能被实例化。 也就是说,接口不能new(不能创建对象)

 

 

接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。

(默认为public) 接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。

 

接口中只能有方法、属性、索引器、事件,不能有“字段”和构造函数。

接口与接口之间可以继承,并且可以多继承。

接口并不能去继承一个类,而类可以继承接口  (接口只能继承于接口,而类既可以继承接口,也可以继承类)

实现接口的子类必须实现该接口的全部成员。

一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。

class MyClass:A,IA{},因为类是单继承的。

显示实现接口的目的:解决方法的重名问题 什么时候显示的去实现接口: 当继承的借口中的方法和参数一摸一样的时候,要是用显示的实现接口

 

当一个抽象类实现接口的时候,需要子类去实现接口。

 

01复习

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using System.IO;
  7 namespace _01复习
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             /*
 14              泛型集合
 15              * List<T>
 16              * Dictionary<T,T>
 17              * 装箱和拆箱
 18              * 装箱:将值类型转换为引用类型
 19              * 拆箱:将引用类型转换为值类型
 20              * 我们应该尽量避免在代码中发生装箱或者拆箱
 21              * 文件流
 22              * FileStream StreamReader和StreamWriter
 23              * 多态:虚方法、
 24              * //抽象类、接口
 25              * 虚方法:
 26              * 抽象类:
 27              
 28              */
 29             List<int> list = new List<int>();
 30 
 31             //Dictionary<int, string> dic = new Dictionary<int, string>();
 32             //dic.Add(1, "张三");
 33             //dic[2] = "李四";
 34             //foreach (KeyValuePair<int,string> kv in dic)
 35             //{
 36             //    Console.WriteLine("{0}-----{1}",kv.Key,kv.Value);
 37             //}
 38             //Console.ReadKey();
 39 
 40             //File  FileStream StreamReader StreamWriter
 41             //using (FileStream fsRead = new FileStream("0505远程版机器码.txt", FileMode.OpenOrCreate, FileAccess.Read))
 42             //{
 43             //    byte[] buffer = new byte[1024 * 1024 * 5];
 44             //    //本次读取实际读取到的字节数
 45             //    int r = fsRead.Read(buffer, 0, buffer.Length);
 46 
 47             //    //将字节数组中的每个元素按照我们指定的编码格式解析成字符串
 48             //    string s = Encoding.Default.GetString(buffer, 0, r);
 49             //    Console.WriteLine(s);
 50             //}
 51             //Console.ReadKey();
 52 
 53             using (FileStream fsWrite = new FileStream(@"new.txt", FileMode.OpenOrCreate, FileAccess.Write))
 54             {
 55                 string s = "abc";
 56                 byte[] buffer = Encoding.UTF8.GetBytes(s);
 57                 fsWrite.Write(buffer, 0, buffer.Length);
 58             }
 59             Console.WriteLine("OK");
 60             Console.ReadKey();
 61 
 62 
 63 
 64 
 65 
 66 
 67             //虚方法和抽象类
 68 
 69             //老师可以起立  学生也可以起立  校长也可以起立
 70 
 71             //声明父类去指定子类对象
 72 
 73             Person p = new HeadMaster();//new Teacher();//new Student();
 74             p.StandUp();
 75             Console.ReadKey();
 76 
 77         }
 78     }
 79 
 80 
 81     public abstract class Person
 82     {
 83         public abstract void StandUp();
 84     }
 85 
 86     public class Student : Person
 87     {
 88         public override void StandUp()
 89         {
 90             Console.WriteLine("学生起立,说老师好");
 91         }
 92     }
 93 
 94 
 95     public class Teacher : Person
 96     {
 97         public override void StandUp()
 98         {
 99             Console.WriteLine("老师起立,说校长好");
100         }
101     }
102 
103     public class HeadMaster : Person
104     {
105         public override void StandUp()
106         {
107             Console.WriteLine("校长起来说领导好");
108         }
109     }
110 
111 
112 
113 }
View Code

相关文章: