C#面象对象2
来源:互联网 发布:古风音乐制作软件 编辑:程序博客网 时间:2024/05/25 19:56
一、类的初始化。
注意:
类在初始化过程中,若没有给定字段的初始值,编译器将自动为每个字段赋于默认值。在方法内部定义的变量,若不初始化,编译器将提示错误。
构造方法:
作用:是对类的字段进行初始化。
特征:与类同名,无返回值 。如下:
class Person{
//构造方法
public Person(){
}
}
方法重载:指在同一个类中有多个同名方法,但方法的参数不同。
特征:方法名称相同,但参数不同(参数的类型不同或参数的个数不同)。如下:
class Class1
{
staticvoid Main(string[] args)
{
}
publicvoid Print(){
...
}
publicvoid Print(string str){
...
}
publicvoid Print(int intTemp){
...
}
publicvoid Print(string str,int intTemp){
...
}
publicint Print (int intTemp,string str){
...
return intTemp;
}
}
方法重载与方法的返回类型无关。构造方法也可以被重载。如下:
class Shape{
private string name;
public Shape(){
}
public Shape(string name){
this.name=name;
}
}
析构方法:是当类在内存中回收时调用的一个方法
它是为了消亡一个类。
它的声明:与构造方法的声明相同,只是在类名前加一个~符号。如下:
class Person{
//构造方法
public Person(){
}
//析构方法
~Person(){
……….
}
}
二、继承。
继承是指 在现有类的基础上定义一个新的类(派生)。
在JAVA中用关键字extends来实现继承。而在C#中用:符号。如下格式:
class 子类类名 :父类类名{
……….
}
我们应当注意:
子类可以继承父类的所有内容(除了父类的构造方法),包括父类私有的内容,但父类中私有的内容子类不可以使用。
子类中调用父类的构造方法:
JAVA中在子类中调用父类的构造方法用super关键字。而在C#中我们如下方法来调用父类的构造方法:
class Triangle:Shape{
private string name;
public Triangle(string name,int intTemp):base(intTemp){ //base在这里就代表一个父类的引用。
this.name=name;
}
base(参数列表) 中的参数列表,必须是在子类构造方法的参数列表中声明过的。
子类的构建次序:先构造一个父类对象,然后再构造子类对象特有的内容。
在子类的构造方法中若没有明确指定调用父类的哪个构造方法时,编译器自动调用父类中那个默认的构造方法。(若父类中没有找到默认的构造方法,那么编译器将会提示错误).
方法隐藏:
子类中的某个方法与父类的某个方法相同,即子类拥有一个和父类相同的方法,这叫做方法的隐藏。
方法的隐藏,子类的方法要用到new 关键字。new放在修饰符之后,返回类型之前。如下:
class Artist
{
……..
publicvoid Print()
{
Console.WriteLine("艺术家");
}
}
class Poet:Artist
{
…………
publicnew void Print() //方法的隐藏,并非方法重写。
{
Console.WriteLine("诗人");
}
}
方法重写:
JAVA中的方法重写是在子类中有一个与父类中的方法同名的方法(返回类型相同,参数相同)叫方法重写。而在C#中这样是不行的。
C#中的方法重写是:
父类将要被重写的方法要用virtual或abstract来修饰。
子类中的那个重名的方法前要用override来修饰。
如下:
class Artist
{
………
publicvirtual void Work() //表示此方法为虚方法,将要被重写
{
Console.WriteLine("艺术家的工作");
}
…….
}
class Poet:Artist
{
………
publicoverride void Work() //重写父类中的Work()方法。
{
Console.WriteLine("诗人的工作");
}
………..
}
- C#面象对象2
- C#面象对象1
- C#面象对象学习:委托(delegate)
- 面象对象
- java 面象对象
- C#面象对象学习:接口与抽象类
- C#面象对象学习:类(class)与结构(struct)
- PHP中的面象对象
- JavaScript面象对象设计
- 面象对象设计总结
- 面象对象设计原则
- 黑马程序员--面象对象
- 面象对象 自学一
- 面象对象 自学二
- 面象对象的面试题
- 面象对象设计的原则
- c与面象对象之继承
- 面象对象设计的基本原则
- TopCoder
- 上篇文章影响到整个页面的显示
- 什么是MODBUS协议
- C#面象对象1
- 可望不可及
- C#面象对象2
- AtomEngine paused.
- 书到用时方恨少
- Route66,GPS道路导航系统,我所用过的最大块头的手机软件
- 数学建模-两球的高级碰撞检测
- 开始学习写日记
- 基本算法连载(2)-Splay Tree,中文叫伸展树,或者分裂树
- Technology & Future
- standard library(10.30)