01:什么是继承?代码举例说明
继承要符合 is a 关系,卡车继承汽车,卡车 is a同一 汽车。
子类通过:继承父类
/// <summary>
/// 汽车类
/// </summary>
class Car
{
}
/// <summary>
/// 卡车类
/// </summary>
public class Truck:Car
{
}
02:什么是多态?代码举例说明
多态:同一操作作用于不同的对象时,可以有不同的解释,产生不同的执行结果。通俗讲即是"多种形态"。
可以通过虚方法,抽象方法实现多态,如下代码,汽车类抽象方法Run(),卡车类通过override重写Run()方法,实现多态。
/// <summary>
/// 汽车类
/// </summary>
public abstract class Car
{
public abstract void Run();
}
/// <summary>
/// 卡车类
/// </summary>
public class Truck : Car
{
public override void Run()
{
throw new NotImplementedException();
}
}
03:什么是抽象类?代码举例说明
抽象类:一个宏观,抽象的概念,用abstract修饰的类
/// <summary>
/// 汽车类
/// </summary>
public abstract class Car
{
public abstract void Run();
}
04:抽象类和接口的相同点和不同点?
继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系
相同点:
1.抽象类和接口都不能实例化对象,但是可以定义抽象类和接口类型的引用;
2.继承抽象类和实现接口都要对其中的抽象方法全部实现;
不同点:
1.接口比抽象类更加抽象,抽象类中可以定义构造方法(构造器),可以有抽象方法和具体方法,
而接口中的方法全部都是抽象方法(接口中也可以没有方法,这样的接口称为空接口)
2.抽象类中的方法可以是private,protected,public,接口全部都是public
3.抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量(final)
4.有抽象方法的类必须声明为抽象类,而抽象方法未必要有抽象方法
05:抽象方法和虚方法的不同点和相同点?
不同点
1、方法关键字不一样
虚方法的方法关键字是:virtual。
抽象类的方法关键词是:abstract
2、基类的方法是否有方法体/实现
虚方法的方法:声明并实现方法。
抽象类的方法:只作声明,无方法体/无实现。
相同点
1、子类/派生类都要重写父类的方法:关键字override。
06:定义抽象类和抽象方法的关键字?
abstract
07:书本上XML那一章中有哪些方法?代码一一举例
Load()读取方法
public class XMLHelper
{
public void Read(string path) {
//创建XML对象
XmlDocument doc=new XmlDocument();
//读取Xml文档
doc.Load(path);
//读取根节点
XmlNode engineer = doc.DocumentElement;
//循环遍历子节点
foreach (XmlNode node in engineer.ChildNodes)
{
}
}
}
08:书本上文件那一章中有哪些方法?代码一一举例
bool Exists(string path)//检查文件是否存在
public void isExists(string path) {
if (File.Exists(path))
{
Console.WriteLine("该文件存在");
}
}
void Copy(string 源文件路径,string 目标文件路径) //复制
public void Copy(string oldPath,string newPath) {
File.Copy(oldPath,newPath);
}
void Move(string 源文件路径,string 目标文件路径) //移动
public void Move(string oldPath,string newPath) {
File.Move(oldPath,newPath);
}
![点击并拖拽以移动 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](https://img-blog.csdnimg.cn/2022010622234964109.gif)
void Delete(string path)//删除
public void Del(string path) {
File.Delete(path);
}
GetDirectories();//返回目录
GetFiles();//返回文件
public void GetDirectory(string path) {
DirectoryInfo dir = new DirectoryInfo(path);
//得到当前目录的子目录
DirectoryInfo[] directories= dir.GetDirectories();
//返回当前目录文件列表
FileInfo[] files = dir.GetFiles();
}