using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象继承_复习
{
class Program
{
static void Main(string[] args)
{
//里氏转换:1、子类可以赋值给父类(如果一个地方需要父类作为参数,我们可以传递一个子类对象)
//2、如果父类中装的是子类对象,则可以将这个父类强转为子类对象 Person p = new Student();
//is as
Student ss = p as Student;//as 是先判断,如果能转换,那就转换过去,如果不能,那就返回一个空
ss.StudentSayHi(); if (p is Student)//is 是仅作为判断,返回bool值,true或者false
{
((Student)p).StudentSayHi();
}
else
{
Console.WriteLine("转换失败");
} ArrayList list = new ArrayList();
//Remove RemoveAt RemoveRange Clear Insert InsertRange
//Reverse Sort
Hashtable ht = new Hashtable();
ht.Add(1, "张三");
ht.Add(2, '男');
ht.Add(3, 50000m);
//在键值对集合中,键必须是唯一的
//ht.Add(1,"李四")
ht[1] = "李四";
//ht.ContainsKey 这个判断很重要,判断是否有键,键不可重复,值可以重复
foreach (var item in ht.Keys)
{
Console.WriteLine("{0},{1}", item, ht[item]);
} //Path类
//File类
//Create Delete Copy Move
byte[] buffer = File.ReadAllBytes(@"F:\程序测试文件夹\new.txt");
//将字节数组中的每一个元素都 要按照我们指定的编码格式解码成字符串
//UTF-8 GB2312 GBK Unicode
string s = Encoding.GetEncoding("UTF-8").GetString(buffer);
Console.WriteLine(s); //没有这个文件的时候创建一个,有的话就覆盖掉
string str = "今天天气好晴朗,处处好风光";
//需要将字节转换成字节数组
byte[] buffer2 = Encoding.Default.GetBytes(str);
File.WriteAllBytes(@"F:\程序测试文件夹\ceshi.txt",buffer2);
Console.WriteLine("写入成功"); Console.ReadKey();
}
}
public class Person
{
public void PersonSayHi()
{
Console.WriteLine("我是人类");
}
}
public class Student : Person
{
public void StudentSayHi()
{
Console.WriteLine("我是学生");
}
}
}

面向对象继承---复习:包含继承关系,里氏转换,ArrayList与Hashtable集合,文件处理的更多相关文章

  1. c#类的继承与包含的关系

    基础例子 class Dept { private string name; private Emp emp; public string getName() { return this.name; ...

  2. C#学习笔记14:面向对象继承的特点和里氏转换

    面向对象: 继承:减少代码. 单根性  传递性 子类没有从父类那里继承了构造函数,只是会默认的调用父类那个无参数的构造函数 Class person { Public String Name { Ge ...

  3. 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)

    1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. ...

  4. 《java入门第一季》之面向对象面试题(继承中构造方法的关系)

    /* 继承中构造方法的关系 A:子类中所有(子类的有参和无参)的构造方法(默认都会访问父类)中(空参数)的构造方法,默认访问父类空参数构造,不默认访问有参数构造 B:为什么呢? 因为子类会继承父类中的 ...

  5. 2、C#面向对象:封装、继承、多态、String、集合、文件(上)

    面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. ...

  6. Jser 设计模式系列之面向对象 - 接口封装与继承

    GOF在<设计模式>中说到:面向接口编程,而非面向实现编程 鉴于此,这个概念可见一斑! JS却不像其他面向对象的高级语言(C#,Java,C++等)拥有内建的接口机制,以确定一组对象和另一 ...

  7. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  8. js面向对象(构造函数与继承)

    深入解读JavaScript面向对象编程实践 Mar 9, 2016 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术. 对JavaScript而言,其 ...

  9. C++ 继承和包含的区别?

    在<代码大全>这本书的第六章中提到了有关包含与继承的一些原则,我摘取如下: 一.包含("has a") 包含表示一个类含有一个基本数据元素或对象.包含是面向对象编程的主 ...

  10. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

随机推荐

  1. 2022年7月10 第四组 周鹏 CSS的基本认识

    CSS 层叠样式表 网页美观 html相当于原材料,css用来加工好看 如何嵌入? 样式如何显示html元素? 样式通常存储在样式表中 把样式表添加到html元素里 定义CSS方式 1,行内样式,可以 ...

  2. [R语言] ggplot2入门笔记3—通用教程如何自定义ggplot2

    通用教程简介(Introduction To ggplot2) 代码下载地址 以前,我们看到了使用ggplot2软件包制作图表的简短教程.它很快涉及制作ggplot的各个方面.现在,这是一个完整而完整 ...

  3. mysql游标最后一行重复问题

    今天用调用存储过程时发现数据有点问题,和预期不一致 经排查,发现是游标在遍历过程中重复遍历了,或者说是对游标下标的判断有Bug 调试后发现是游标使用方式不正确 应该在循环外先对游标进行一次取值操作,在 ...

  4. python之路25 面向对象 封装(隐藏、伪装)、多态、反射

    派生方法实战演练 import json import datetime d = { 't1': datetime.date.today(), 't2': datetime.datetime.toda ...

  5. MAC上好用的解压工具

    macOS:11.1 想在 macOS 上打开一个压缩文件,有原生的归档实用工具或 BetterZip.Keka.The Unarchiver 等诸多选择.最近,又有国内独立开发者为我们带来了一款新作 ...

  6. 【3.x合批亲测】使用这个优化方案,iPhone6也能飞起来,直接拉满60帧!

    大家好,我是晓衡! 上周我花了3天的时间,体验测试了一款 Creator 3.x 性能优化工具:98K动态分层合批. 它能将 DrawCall 超过 1000+ 次的 2D 界面,实现运行时节点分层排 ...

  7. hashlib加密模块及subprocess远程命令模块

    hashlib加密模块及subprocess远程命令模块 一.hashlib加密模块 1.加密模块简介 1.加密模块简介 将明文数据进行加密处理,转变为密文数据再存储或者传输,这样的安全机制可以让用户 ...

  8. STL序列式容器使用注意、概念总结

    引入 最近看了<STL源码剖析>的第 4 章和第 5 章,介绍了 C++ STL 中的序列式容器和关联式容器,本文将总结序列式容器的基础概念,不会详细它们的实现原理(想知道自个儿看书吧,我 ...

  9. Mybatis获取插入值的ID

    需求: 在后台做多次插入的时候,需要使用返回ID,然而普通的操作是无法做到的 Mybatis可以在insert的标签 上加上 keyProperty='id' useGeneratedKeys=&qu ...

  10. 【TS】基础类型

    在ts中定义基础类型, 语法 : let 变量名 : 数据类型 = 值 // 布尔类型 ----boolean let flag : boolean = true flag = false 在赋值的时 ...