01:什么是继承?代码举例说明`
class Animal
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string gender;
public string Gender
{
get { return gender; }
set { gender = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public void Run()
{
Console.WriteLine("奔跑。。。");
}
}
class Cat:Animal
{
public void CatchMouse()
{
Console.WriteLine("抓老鼠。。。");
}
}
class Dog:Animal
{
public void GuardHouse()
{
Console.WriteLine("看家护院。。。");
}
}
class Cattle:Animal
{
public void Plowland()
{
Console.WriteLine("耕田。。。");
}
}
02:什么是多态?代码举例说明
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
class OneBase
{
protected virtual string GetName()
{
return "OneBase";
}
public void PrintName()
{
Console.WriteLine(GetName());
}
}
class A : OneBase
{
protected override string GetName()
{
return "A";
}
}
class B : OneBase
{
protected override string GetName()
{
return "B";
}
}
static void Main(string[] args)
{
List<OneBase> baseLst = new List<OneBase>();
B b = new B();
baseLst.Add(b);
A a = new A();
baseLst.Add(a);
foreach (OneBase o in baseLst)
{
o.PrintName();
}
Console.ReadLine();
}
}
}
03:什么是抽象类?代码举例说明
答:
1、声明一个抽象方法使用abstract关键字。
2、一个类中可以包含一个或多个抽象方法。
3、抽象类中可以存在非抽象的方法。
4、抽象类不能被直接被实例化。
5、实现抽象类用“:”(冒号),实现抽象方法用override关键字。
6、抽象类可以被抽象类所继承,结果仍是抽象类。
7、抽象方法被实现后,不能更改修饰符。
public abstract class Person
{
public abstract void SayHello();
public void about()
{
Console.WriteLine("Abstract Demo");
}
}
public class Student : Person
{
public override void SayHello()
{
Console.WriteLine("SayHello");
}
}
class MainClass
{
public static void Main()
{
new Student().SayHello();
}
}
04:抽象类和接口的相同点和不同点?
答:
相同点:
(1) 都可以被继承
(2) 都不能被实例化
(3) 都可以包含方法声明
(4) 派生类必须实现未实现的方法
区 别:
(1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。
(2) 抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范.
(3) 接口可以被多重实现,抽象类只能被单一继承
(4) 接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法
(5) 接口可以用于支持回调,而继承并不具备这个特点
(6) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
05:抽象方法和虚方法的不同点和相同点?
答:
不同点
1、方法关键字不一样
虚方法的方法关键字是:virtual。
抽象类的方法关键词是:abstract
2、基类的方法是否有方法体/实现
虚方法的方法:声明并实现方法。
抽象类的方法:只作声明,无方法体/无实现。
共同点
1、子类/派生类都要重写父类的方法:关键字override。
06:定义抽象类和抽象方法的关键字?
答:在C#中使用关键字 abstract 来定义抽象类和抽象方法。
在C#中使用关键字 abstract 来定义抽象类和抽象方法。
07:书本上XML那一章中有哪些方法?代码一一举例
答:操作XML的方法
//获取文件
XmlDocument myXml = new XmlDocument();
//读取指定的xml文档
myXml.Load("Engineer.xml");
//读取XML的根节点
XmlNode engineer = myXml.DocumentElement;
//对子节点进行循环
for(XmlNode node in engineer.ChildNodes)
{
//将每个节点的内容显示出来
switch(node.Name)
{
case "ID":
Console.WriterLine("ID{0}",node.InnerText);
break;
case "Name":
Console.WriterLine("姓名{1}",node.InnerText);
break;
case "Age":
Console.WriterLine("年龄{2}",node.InnerText);
break;
}
}
Console.ReadLine();
}
08:书本上文件那一章中有哪些方法?代码一一举例
//创建文件流
FileStream myfs = new FileStream();
//创建写入器
StreamWriter mysw = new StreamWriter(myfs);
//将录入的内容写入文件
myfs.Writer(content);
//关闭写入器
myfw.Close();
//关闭文件流
myfs.Close();