void getName(); //right
void getAge(string s); //right
}
public class Chinese:IPerson
{
public Chinese(){} //构造函数
public void getName(){} //实现getName()
public void getAge(string s){} //实现getAge()
}
2,抽象类不能直接实例化,必须由其派生类实现。
public abstract 例子
public abstract class Book
{
public abstract void getPrice(); //抽象方法,不含主体
}
public class EnglishBook:Book
{
public override void getPrice() //实现抽象方法,必须在继承类中实现
{
Console.WriteLine("this is a test:EnglishBook override abstract getPrice()");
}
}作者: 魏振龙 时间: 2012-7-6 17:41
许庭洲 发表于 2012-7-6 17:14
1,只提供一些方法规约,不提供方法主体,可有参数;
interface 例子:
public interface IPerson
继承角度:类,抽象类,接口都可以被其他类继承(接口被实现说法标准点);
继承类需要满足 is a 的关系,比如 猫 继承 动物,猫 is a 动物;
继承(实现)接口要满足 has a 的关系,接口更强调的是一种能力,(从英语的角度看微软提供的接口一般都是形容词,类通常是名词),比如 飞机会飞,鸟也会飞,谁继承谁都不好,他们的共同点是飞,可以说成 飞机 has a 飞able ,鸟 has a 飞able,这样讲就会合乎实际,会与生活接近点,面向对象语言的特点就是抽象生活(扯远了)