1:什么是继承?代码举例说明
继承:继承即在符合is-a关系的条件前提。子类继承父类的共有属性与方法,并且可以有自己独立于父类之外子类特有的方法和属性就叫继承
代码举例如下:
class Person
{
//姓名
public string Name { get; set; }
//年龄
public int Age { get; set; }
//性别
public string Sex{ get; set; }
//父类构造函数
public Person(string name,int age,string sex){
this.Name=name;
this.Age=age;
this.Sex=sex;
}
}
class Student: Person
{
//学生学号
public string StuNo{get;set;}
//子类构造函数
public Student(string stuNo,string name,int age,string sex):base(name,id,sex){
this.StuNo=stuNo;
}
}
2:什么是多态?代码举例说明
多态:一种方法通过不同形式所表达的多种形态称为多态
代码举例如下:
class Person
{
public virtual void Show()
{
Console.WriteLine("教师开始教学");
}
}
class Student: Person
{
//重写父类的方法
public override void Show()
{
Console.WriteLine("学生开始上课");
}
}
static void main(String[] args) {
//创造父类类型接收实例化子类的对象
Person p= new Student();
//根据new的具体对象调用具体的子类方法,输出学生上课实现了多态的调用
p.Show();
Console.ReadLine();
}
3:什么是抽象类?代码举例说明
抽象类:
(1)抽象类用abstract关键字修饰抽象成员必须在抽象类中声明,
(2)但抽象类不要求必须包含抽象成员,抽象类只能当做基类使用,而不能直接实例化。
(3)抽象类的用途提供多个派生类可共享的基类的公共定义
(4)抽象类中的抽象方法必须被子类override <重写>
public abstract class BaseClass
{
public abstract void Eat();
public abstract void Walk();
public abstract void Speak();
}
4:抽象类和接口的相同点和不同点?
相同点:
(1) 都不能被实例化
(2) 都可以包含方法声明
(3) 都能被继承或实现
不同点:
(1)抽象类可以有构造方法,接口中不能有构造方法。
(2)抽象类中可以有普通成员变量,接口中没有普通成员变量(接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final)
(3)抽象类中可以包含静态方法,接口中不能包含静态方法
(4) 一个类可以实现多个接口,但只能继承一个抽象类。
(5)接口可以被多重实现,抽象类只能被单一继承
(6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
(7) 接口定义的关键字interface;抽象类定义的关键字abstract
(8)抽象类继承的关键字extends,接口的实现关键字implements
(9) 抽象类可以提供成员方法的实现细节,可以用public 、protected、default这些修饰符;接口只能是public abstract方法
5:抽象方法和虚方法的不同点和相同点?
相同点:
(1)派生类必须实现该方法
(2)都可以被重写
不同点:
(1)抽象方法用abstract修饰,虚方法用virtual修饰
(2)抽象方法不能有方法体,虚方法必须有
(3)抽象方法必须被重写,虚方法可以不被重写
(4)抽象方法只能定义在抽象类中,虚方法只要不是密封类都可以定义
6:定义抽象类和抽象方法的关键字?
抽象方法用abstract修饰,抽象类也用abstract修饰
7:书本上XML那一章中有哪些方法?代码一一举例
string path = @"C:\zixizuoye\bookstore.xml";
//获取Xml对象的方法
XmlDocument myxml = new XmlDocument();
//读取Xml结构方法
myxml.Load(path);
//获取指定文件的根节点方法
XmlElement el = myxml.DocumentElement;
//循环遍历根节点的子节点并输出
foreach (XmlNode item in el.ChildNodes)
{
foreach (XmlNode nodes in item.ChildNodes)
{
Console.WriteLine(nodes.InnerText);
}
}
Console.ReadLine();
8:书本上文件那一章中有哪些方法?代码一一举例
string path = @"C:\zixizuoye\h.txt";
string path2= @"E:\h.txt";
FileInfo file = new FileInfo(path);
//判断文件是否存在
Console.WriteLine(file.Exists);
Console.WriteLine(file.Name);
Console.WriteLine(file.DirectoryName);
//复制
file.CopyTo(path2);
//删除
File.Delete(path2);
//移动
file.MoveTo(path2);
Console.ReadLine();