C#中那个在子类中new 的方法有什么作用

来源:百度知道 编辑:UC知道 时间:2024/06/10 22:40:13
今天学了C# 在子类student中 new 了一个跟父类的一样的print方法,创建对象
person p=new student(); p调用print方法调用的是谁的?实验是调用的父类的。如果不用new 就是覆盖了。就调用的是子类的了。请问c#里这种有什么用,个人感觉没什么用。调用父亲的 直接new一个student的对象可以调用父类的print的方法哦。。。请大侠讲讲吧?谢谢啦

说的简单一点就是他可以让你的父类和子类有相同名称的方法并且是相同参数的,按你的例子来说就是需要调用父类的print方法时p.print()当需要调用子类的print方法时可以写成((student)p).print();这样不是很方便吗?

new 嘛
实例化一个类。
比如有一个类叫汽车。你现在想在程序中买一辆,所以你用new来买了一辆汽车,这辆车你得给你找个名字,比如宝马。呵呵所以就成
汽车 宝马 = new 汽车

你有钱了,你要再来一辆

汽车 奔驰 = new 汽车

但他们都有汽车该有的东西:四个轮子,一个方向盘,发动机,车门。所以都是汽车一类的东西。

你看来还没有理解c#的本质,可以这样,c#所有东西全都是类,一个继承另一个,子类继承父类。
连string都是个类。申明一个字符串变量,就是实例化一个string类。

实例化类这个嘛不是c#才有问题,是面向对象的问题。
一个包装好了的功能的代码块就可以作为一个类。但你不能直接用它,因为面向对象概念中是不允许随便修改类的内容的。要用你就要实例化。就像汽车这个类。你要用行,但你不能改了汽的一些基本性质上的东西。比如你不能让四个轮子变成只有两个。你不能却掉方向盘。但是你不甘心啊,所以你实例化了,系统就给你一个类似于汽车镜像一样的汽车,他有了汽车通有的东西。你自己给他一个名字,以后你就可以随意让车开开停停,改改装装,你说我要加一排灯行,你可以加在你的实例上,但不要加到类上,因为你一加到类上了,别人实例化了的汽车也有一排的灯了,人家又不喜欢怎么办呢。

其实你申明字符串变量的时候一般没有用到new因为这种东西有点儿不一样,系统准许你不用new来声明,直接用
string 变量名
就行了
但用new也没有错,一样是可以的。

c#就是有强大的类库,什么意思呢,就是基本上所有你要完成的程序都可以用c#类库(有很多很多类),实例化你要用的。拼起来就行了。绝大多数类还是要用new的。

楼主

我建议你继续去学习面向对象编程!