01:什么是继承?代码举例说明。
就是子类继承父类,使子类具有父类的各种属性和方法。
//父类
public class student{
public int id { get; set; }
public string name { get; set; }
public Student(int id, string name)
{
this.id = id;
this.name = name;
}
public Student()
{
}
}
//子类
public class School : Student
{
public string SchoolName { get; set; }
public School()
{
}
public School(int id, string name,string SchoolName)
{
this.id = id;
this.name = name;
this.SchoolName = SchoolName;
}
}
02:什么是多态?代码举例说明。
指同一操作作用与不同的对象时,可以有不同的解释,产生不同的执行效果。
public class Student
{
public virtual string Show()
{
string message = string.Format("大家好!");
return message;
}
}
public class School : Student
{
public override string Show()
{
string message = string.Format("大家好!,我是代码");
return message;
}
}
03:什么是抽象类?代码举例说明。
包含了无法实现的成员的类就是抽象类。
public class Employee
{
public Employee() {
}
public Employee(string id, int age, string name, Gender gender)
{
this.ID = id;
this.Age = age;
this.Name = name;
this.Gender = gender;
}
/// <summary>
/// 工号
/// </summary>
protected string ID { get; set; }
/// <summary>
/// 年龄
/// </summary>
protected int Age { get; set; }
/// <summary>
/// 姓名
/// </summary>
protected string Name { get; set; }
/// <summary>
/// 性别
/// </summary>
protected Gender Gender { get; set; }
public virtual string SayHi()
{
string message = string.Format("大家好!");
return message;
}
public void GoHome(TrafficTool tool)
{
Console.WriteLine("员工:"+this.Name);
tool.Run();
}
}
/// <summary>
/// 项目经理类
/// </summary>
public class PM:Employee
{
public PM(string id,string name,int age, Gender gender, int yearOfExperience):base(id,age, name,gender)
{
this.YearOfExperience = yearOfExperience;
}
public PM() {
}
/// <summary>
/// 资历
/// </summary>
private int _yearOfExperience;
public int YearOfExperience
{
get { return _yearOfExperience; }
set { _yearOfExperience = value; }
}
public override string SayHi()
{
string message = string.Format("大家好,我是 {0} ,今年 {1} 岁,项目管理经验 {2}年。",base.Name, base.Age, this.YearOfExperience);
return message;
}
}
/// <summary>
/// 程序员类
/// </summary>
public class SE:Employee
{
/// <summary>
/// 带参构造函数
/// </summary>
/// <param name="id">工号</param>
/// <param name="name">姓名</param>
/// <param name="age">年龄</param>
/// <param name="gender">性别</param>
/// <param name="popularity">人气值</param>
public SE(string id,string name,int age, Gender gender, int popularity): base(id,age, name,gender)
{
this.Popularity = popularity;
}
public SE() { }
/// <summary>
/// 人气值
/// </summary>
private int _popularity;
public int Popularity
{
get { return _popularity; }
set { _popularity = value; }
}
public override string SayHi()
{
string message = string.Format("大家好,我是 {0}, 今年 {1}岁,工号是 {2},我的人气值高达 {3}!",base.Name,base.Age,base.ID,this.Popularity);
return message;
}
04:抽象类和接口的相同点和不同点?
相同点:
(1) 都可以被继承 。
(2) 都不能被实例化 。
(3) 都可以包含方法声明。
(4) 派生类必须实现未实现的方法 。
不同点:
(1)抽象类可以有构造方法,接口中不能有构造方法。
(2)抽象类中可以包含静态方法,接口中不能包含静态方法。
(3)抽象类可以有构造器,接口不能有构造器。
(4)接口可以被多重实现,抽象类只能被单一继承。
(5)抽象类定义的关键字是abstract,接口定义的关键字是interface。
(6)抽象类继承的关键字是extends,接口的实现关键字是implements。
(7)一个类可以实现多个接口,但只能继承一个抽象类。
05:抽象方法和虚方法的不同点和相同点?
不同点: (1)抽象类的方法关键词是:abstract,虚方法的方法关键字是:virtual。
(2)抽象类的方法:只作声明,无方法体/无实现,虚方法的方法:声明并实现方法。
(3)包含抽象方法的类不能实例化,而包含虚方法的类可以实例化。
(4)抽象方法必须在派生类中重写,虚方法不需要在派生类中重写。
相同点: 子类/派生类都要重写父类的方法,关键字都是override。
06:定义抽象类和抽象方法的关键字?
定义抽象类和抽象方法的关键字:abstract;
07:书本上XML那一章中有哪些方法?代码一一举例
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes;
//判断该节点下是否有子节点
root.HasChildNodes;
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("/Root/News");
//生成一个新节点
XmlElement node=xml.CreateElement("News");
//将节点加到指定节点下,作为其子节点
root.AppendChild(node);
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes[i]);
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111");
//为指定节点添加子节点
root.AppendChild(node);
//删除节点
XmlElement xe=(XmlElement)xnl.Item(i);
root.RemoveChild(xe);
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value;
//获取指定节点中的文本
string content=node.InnerText;
//保存XML文件
string path=Server.MapPath("~/file/bookstore.xml");
xml.Save(path);
08:书本上文件那一章中有哪些方法?代码一一举例
File.Exists("C:\\Text.txt");
File.Copy("C:\\Text.txt","D:\\Text.txt");
File.Delete("C:\\Text.txt");
File.Move("C:\\Text.txt","D:\\Text.txt");