C#继承和多态

本文详细探讨了C#中的面向对象特性,包括继承的概念和代码示例,多态的定义及其作用,抽象类的定义与特点,以及抽象方法和虚方法的区别。同时提到了抽象类与接口的异同,以及XML和文件操作的相关方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

答:继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。

public class em{
public string ID{get;set}
public int Age{get;set}
}
public class ss:em{
public ss(string id,int age yearof)
this.id=id;
this.age = age;
this.yearof = yearof;
}
public int yearof{age;set;}


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

答:多态就是“多种形态”,指同一操作用于不同的对象时,可以有不同的解释,产生不同的执行结果

允许多个方法的方法名相同,只要它们的方法签名不同就可以;

public virtual string Sauhi(){
string message = string.Format("大家好!");
return message;
}
public override string Sayhi(){
string message = string.Format("大家好,我是{0},今年{1}岁",base.Name,base.age)
return message;
}


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

abstract class dame
{
abstract public int area();
}

答:
04:抽象类和接口的相同点和不同点?

相同点:

1.抽象类和接口都不能实例化对象,但是可以定义抽象类和接口类型的引用;

2.继承抽象类和实现接口都要对其中的抽象方法全部实现;

不同点:

1.接口比抽象类更加抽象,抽象类中可以定义构造方法(构造器),可以有抽象方法和具体方法,

而接口中的方法全部都是抽象方法(接口中也可以没有方法,这样的接口称为空接口)

2.抽象类中的方法可以是private,protected,public,接口全部都是public

3.抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量(final)

4.有抽象方法的类必须声明为抽象类,而抽象方法未必要有抽象方法

05:抽象方法和虚方法的不同点和相同点?

抽象方法

使用abstract关键字 public abstract bool Withdraw(…);

抽象方法是必须被派生类覆写的方法。

抽象方法是可以看成是没有实现体的虚方法

如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法

虚方法

使用virtual关键字 public virtual bool Withdraw(…);

调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。

虚方法可以有实现体 若一个实例方法的声明中含有 virtual 修饰符,则称该方法为虚拟方法;

一个虚拟方法的实现可以由派生类取代。取代所继承的虚拟方法的实现的过程称为重写该方法;

在一个虚拟方法调用中,该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。

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

答:

抽象类:

抽象类使用abstract修饰符,并且它只能是用作基类。
抽象类不能实例化,当使用new运算

抽象方法:

抽象方法是隐式的虚方法,抽象方法只能在抽象类中声明。 
抽象方法不能使用private、static和virtual修饰符。(抽象的方法默认是一个virtual方法) 
抽象方法不能在派生类用base关键字进行访问。 
抽象方法声明不提供实际的实现,没有方法体。

若要实现抽象方法,需要在派生类(非抽象类)中进行重写该抽象方法, 

继承类只有实现过所有抽象类的抽象方法后才能被实例化。

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

XmlDocument xml = new XmlDocument();
//读取整个xml的结构
xml.Load(“E://Engineer.xml”);
//获取根节点
XmlNode xmlNode = xml.DocumentElement;
//读取所有子节点
foreach (XmlNode item in xmlNode.ChildNodes)
{
string name = item[“name”].InnerText;//获取指定节点的值
}


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

复制

public void Fz(string a,string a1){
File.Copy(a,a1)
}

删除
public void Sc(string a){
File.Delete(a)
}

移动
public void Yd(string a,string a1){
File.Move(a,a1)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值