景程学院吧 关注:57贴子:725
  • 0回复贴,共1

2015年6月4日 月月

只看楼主收藏回复

1.面向对象的三大特质:封装 继承 多态。
2.封装:1>:尽可能把多的东西封装起来,对外提供简捷的接口。
2>:把所有的属性藏起来。
特点:安全性好。
3.继承:分为隐示继承和显示继承。
通俗讲就是子承父业。
父类为基类,子类为派生类。
4.继承的特性:1>:代码的可重用性
2>:单继承
3>:传递性
5.子类继承父类,继承的是父类中的非私有成员。(就是除了private)
6.继承是只可以单继承,不可以多继承的。(通俗讲就是父只有一个)
7.:base——是显示继承(张扬)
1>:通俗讲就是它可以继承父类构造函数中的参数,
自己也想有的参数可以不必自己定义,直接继承父类就可以。
8.例如:
父类:
public class FuLei
{
public string name;
private int age;
protected double money;
internal string lovey;
public FuLei() { }
public FuLei(string _name,string _lovely)
{
name = _name;
lovey = _lovely;
}
}
子类:
public class ZiLei:FuLei
{
private string lovely;
public ZiLei(string _name,int _age,string _lovely):base(_name,_lovely)
{
lovely = _lovely;
}
}
9.抽象类:抽象类是一个未实现的类,必须由派生类继承并实现。
10.override:可以实现重写虚方法(virtual),可以重写抽象方法和已被重写过的方法。
11.接口:可以写变量:int a{get;set;};可以写方法;不可以写方法体;不可以写访问修饰符;不可以写属性。必须被普通类继承并实现。
12.new的三种用法:
1>:实例化:person p = new person();
2>:数组:int[]a = new int[5];
3>:隐藏继承成员:new public static int val = 456;
13.小例子:
1>:抽象类和抽象方法:
父类:
public abstract class chouxiang
{
public abstract void fangfa();
public void feichouxiang()
{
Console.WriteLine("这是一个非抽象方法!");
}
}
子类:
public class putong:chouxiang
{
public override void fangfa()
{
Console.WriteLine("这是一个抽象方法! ");
}
}
14.接口小例子:
public interface Ichouxiang
{
int age();
void min();
}
public class meth : Ichouxiang
{
public int age()
{
Console.WriteLine("zheshi age");
return (3);
}
public void min()
{
Console.WriteLine("zheshi min");
}
}
14.new和override小例子:
public class person
{
public static int val = 123;
}
public class student:person
{
new public static int val = 456;
public static void min()
{
Console.WriteLine(val);
}
//override
public virtual void fu()
{
Console.WriteLine("这是 virtual 方法,可以被重写");
}
public override void fu()
{
Console.WriteLine("父的不要了,重新创建一个新的");
}
}
15.new和override的区别:
override:
1. override是派生类用来重写基类中方法的;
2. override不能重写非虚方法和静态方法;
3. override只能重写用virtual、abstract、override修饰的方法;
4. 不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。
new:
1. new是派生类用来隐藏基类中的方法的;也就是说在派生类中“看不到”基类中的方法;
2. 如果要在派生类中隐藏(不是重写)基类中的方法,而没有使用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字;
3. 派生类可以隐藏基类中的虚方法,也可以隐藏基类中的普通方法。
4. 如果在派生类中用private来修饰new 方法,那么只在该派生类中隐藏了基类中的方法,在该派生类之外,相当于没有隐藏基类中的方法;
5. 如果在派生类中隐藏了基类中的方法,在该派生类的派生类中,将延续对该派生类对基类方法的隐藏。
16.关键字virtual是一个虚方法,可被重写。


1楼2015-06-04 20:26回复