interface abstract与virtual


interface abstract与virtual
interface用来声明接口
1.只提供一些方法规约,不提供方法主体

publicinterfaceIPerson
{
voidgetName();//不包含方法主体
}
2.方法不能用publicabstract等修饰,无字段变量,无构造函数。
3.方法可包含参数

publicinterfaceIPerson
{
voidgetAge(strings);
}

一个例子(例1):
publicinterfaceIPerson
{
IPerson();//错误
stringname;//错误
publicvoidgetIDcard();//错误

voidgetName();//right
voidgetAge(strings);//right
}

实现interface的类
1.与继承类的格式一致,如publicclassChinese:IPerson{}
2.必须实现interface中的各个方法

例2,继承例1
publicclassChinese:IPerson
{
publicChinese(){}//添加构造
publicvoidgetName(){}//实现getName()
publicvoidgetAge(strings){}//实现getAge()
}

abstract声明抽象类、抽象方法
1.抽象方法所在类必须为抽象类
2.抽象类不能直接实例化,必须由其派生类实现。
3.抽象方法不包含方法主体,必须由派生类以override方式实现此方法,这点跟interface中的方法类似


publicabstractclassBook
{
publicBook()
{
}

publicabstractvoidgetPrice();//抽象方法,不含主体
publicvirtualvoidgetName()//虚方法,可覆盖
{
Console.WriteLine("thisisatest:virtualgetName()");
}
publicvirtualvoidgetContent()//虚方法,可覆盖
{
Console.WriteLine("thisisatest:virtualgetContent()");
}
publicvoidgetDate()//一般方法,若在派生类中重写,须使用new关键字
{
Console.WriteLine("thisisatest:voidgetDate()");
}
}

publicclassJavaBook:Book
{
publicoverridevoidgetPrice()//实现抽象方法,必须实现
{
Console.WriteLine("thisisatest:JavaBookoverrideabstractgetPrice()");
}
publicoverridevoidgetName()//覆盖原方法,不是必须的
{
Console.WriteLine("thisisatest:JavaBookoverridevirtualgetName()");
}
}

测试如下:
publicclasstest
{
publictest()
{
JavaBookjbook=newJavaBook();
jbook.getPrice();//将调用JavaBook中getPrice()
jbook.getName();//将调用JavaBook中getName()
jbook.getContent();//将调用Book中getContent()
jbook.getDate();//将调用Book中getDate()

}
publicstaticvoidMain()
{testt=newtest();
}
}

virtual标记方法为虚方法
1.可在派生类中以override覆盖此方法
2.不覆盖也可由对象调用
3.无此标记的方法(也无其他标记),重写时需用new隐藏原方法

abstract与virtual:方法重写时都使用override关键字
interface中的方法和abstract方法都要求实现
优质内容筛选与推荐>>
1、DAVERAGE
2、Page Scroll Effects - 简单的页面滚动效果
3、1721. Two Sides of the Same Coin
4、USACO The Clocks
5、MapReduce编程模型


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号