继承与多态

01:什么是继承?代码举例说明

//父类
public class Person{
public string Name;
public int Age;
//构造函数进行初始化
public Person(string name,string Age){
    this.Name=name;
    this.Age=age;
    Console.Writeline(name);
    Console.Writeline(Age);
}
}
//子类
public class Student:Person
{
private int _id;
//调用Person构造函数
public Student(string name,int age,int _id):base(name,age)
{
this._ID=_id;
Console.WriteLine(_id);
}
}
//测试类
static void Main(string[] args)

{

Student objStu = new Student("Tom", 20, 1001);

}

}


02:什么是多态?代码举例说明

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("老总讲话:大家请肃静,现在刚好08:00整,我们开始开会,请各个部门领                           导发言:");
            //定义存放Company类型的实力
            Company[] CArray = new Company[3];
            CArray[0] = new Manager();
            CArray[0].Say("张经理:");
            CArray[0].Foo();
            CArray[1] = new Coder();
            CArray[1].Say("李程序员:");
            CArray[1].Foo();
            CArray[2] = new Accountant();
            CArray[2].Say("钱会计:");
            CArray[2].Foo();
            Console.ReadKey();
        }
    }
// 定义个公司类
    class Company
    {
        string Name = "";
        public virtual void Say(string name)
        {
            this.Name = name;
        }
        public virtual void Foo()
        {
            Console.WriteLine(Name+" 公司条例规定,不同岗位的工作人员,干好本职工作!");
        }
    }
    //定义个经理类
    class Manager:Company
    {
        string Name = "";
        public override void Say(string name)
        {
            //base.Say(name);
            this.Name = name;
        }
        public override void Foo()
        {
            Console.WriteLine(Name+" 开早会,给大家分配工作");
        }
    }
    //定义程序员类
    class Coder:Company
    {
        string Name = "";
        public override void Say(string name)
        {
            //base.Say(name);
            this.Name = name;
        }
        public override void Foo()
        {
            Console.WriteLine(Name+" 根据经理早会的内容,我开始编写代码了");
        }
    }
    //定义财会类
    class Accountant:Company
    {
        string Name = "";
        public override void Say(string name)
        {
            //base.Say(name);
            this.Name = name;
        }
        public override void Foo()
        {
            Console.WriteLine(Name+" 今天早会提到员工工资的事情了。而今天刚好是开工资的日子,我必须抓紧发工资,让员工好好干活!");
        }
    }

}


03:什么是抽象类?代码举例说明

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)接口可以被多重实现,抽象类只能被单一继承
05:抽象方法和虚方法的不同点和相同点?

不同点:方法关键字不一样:虚方法virtual,抽象方法:abstract

              是否有方法体/实现:虚方法声明并实现方法,抽象方法只作声明,无方法体/实现

相同点:子类/派生类都要重写父类方法:关键字override

06:定义抽象类和抽象方法的关键字?

抽象类:abstract ;抽象方法:abstract
07:书本上XML那一章中有哪些方法?代码一一举例

书本第八章的Load()方法

Load:

 
public void Show(string path)
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNode x = xml.DocumentElement;
            foreach (XmlNode item in x)
            {
                Console.WriteLine(item.Name); 
            }
        }


08:书本上文件那一章中有哪些方法?代码一一举例

         //复制Copy
        public void Copy(string oldpath,string newpath) {
            File.Copy(oldpath,newpath);
        }
        //删除Delete
        public void Delete(string path) {
            File.Delete(path);
        }
        //移动Move
        public void Move(string oldpath, string newpath) {
            File.Move(oldpath, newpath);
        }
        //文件是否存在Exists
         public bool Show(string path)
        {
            if (File.Exists(path))
            {
                return true;
            }
            return false;
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值