C#中关于继承的简单知识及与C++对比


最近学习完了C#中关于继承的知识,发现其与C++许多方面不同,特在此总结以加深记忆。希望也可以帮助到想了解C#的朋友。

使用继承

一个需要注意的地方就是C#隐式公共继承,不能显示声明为public,private,或protected,此外,C#不允许多继承。例子如下:

class Mammal
{
	//	定义一个哺乳动物基类
	private string m_name;
	public Mammal(string name);
	public void Sleep();
	public void Breath();
	....//哺乳动物的共性,都会睡觉,呼吸等
}
class Horse:Mammal	//继承
{
	...//实现自己独有的方法
}

基类构造函数

在构造函数方面C#派生类调用基类构造函数,使用base,不像C++中直接使用基类名,例子如下:

class Horse:Mammal
{
	public Horse(string name):base(name)
	{
			...
	}
}

覆盖基类方法

有时候由于类变的越来越庞大,派生类中的方法不可避免的与基类方法重名,这时编译器将给出警告,如果你是有意要覆盖基类方法,则使用new关键字可消除警告,例子如下:

//假设基类Mammal也定义了Run方法
class Horse:Mammal
{
	new public void Run()	//派生类有意覆盖基类方法
	{
		...
	}
}

声明重写方法

C#中同样可以声明虚方法,声明方式与C++相同,但在派生类中实现虚方法则有所不同,实现虚方法使用override关键字,没有使用override关键字视为覆盖父类方法,例子如下:

class Mammal
{
	public virtual void Talk();	//声明虚方法,派生类需实现自己的Talk方法
	...
}

class Horse:Mammal
{
	public override void Talk()	//实现自己的Talk方法
	{
		Console.WriteLine("Hahahaha");
	}
}

创建扩展方法

扩展方法允许添加静态方法来扩展现有类型(包括类与结构),与C++的重载功能类似。扩展类型需要在静态类中定义,例子如下:
//假设为int类型定义一个取反的方法

static class ForInt
{
	public static int Negate(this int i)	//注意this关键字,需扩展的类型用this修饰,并且必须是第一个参数
	{
		return -i;
	}
}

//使用如下:
int number=123;
Console.WriteLine($"number.Negate{number.Negate()}");

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!
在计算机编程,C和C++都是非常重要的编程语言。它们都是被广泛应用于系统开发和高性能应用程序的常用语言。 C是一种被广泛使用的、面向过程的编程语言。它由Dennis Ritchie在20世纪70年代初开发,一开始被用于UNIX操作系统的开发。C具有简洁的语法结构和丰富的函数库,使得它非常适合用于系统级编程和嵌入式设备开发。C还可以编写高效的代码,并具有较少的内存占用,因此它对于资源有限的设备非常合适。许多其他编程语言,如C++、Java和Python等,都是在C的基础上开发的。 C++是在C语言的基础上扩展而来的编程语言。它由Bjarne Stroustrup在20世纪80年代开发,旨在为C语言添加面向对象的特性。C++继承了C的简洁性和高效性,并添加了类、继承、封装和多态等面向对象的功能。C++还具有强大的标准模板库(STL),提供了许多现成的容器和算法,使得程序开发更加快速和简便。C++广泛应用于游戏开发、图形界面以及大规模软件系统等领域。 虽然C和C++在某些方面相似,但它们也有一些重要的区别。C语言更加简洁,具有更小的语法和更少的特性,因此更加适合编写较低级别的、对性能要求较高的程序。而C++则更加强大和灵活,具有更多的特性和功能,使得它更适合开发大型软件系统和应用程序。 总体而言,C和C++都是非常重要的编程语言。选择使用哪个取决于项目的具体需求和个人的偏好。无论是选择C还是C++,掌握这些编程语言的基本概念和语法结构都是非常有益的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值