博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#与Java多态方面的语法差异
阅读量:6173 次
发布时间:2019-06-21

本文共 1321 字,大约阅读时间需要 4 分钟。

C#与Java多态方面的语法差异

2016-11-29

Java代码:

public static void main(String[] args) {        Mother mother=new Mother();        mother.showName();        Mother human=new Son();        human.showName();        Son sona=new Son();        sona.showName();}    public class Mother {    public void showName(){        System.out.println("妈妈");    }}public class Son extends Mother {        public void showName(){        System.out.println("儿子");    }    }

结果:

妈妈儿子儿子

C#代码:

class Program    {        public static void Main()        {            Mother mother = new Mother();            mother.ShowName();            Mother human = new Son();            human.ShowName();            Son sona = new Son();            sona.ShowName();            Console.Read();        }    }    public class Mother    {       public virtual void ShowName()        {            Console.WriteLine("妈妈");        }    }    public class Son : Mother    {        public override void ShowName()        {            Console.WriteLine("儿子");        }    }

结果:

妈妈儿子儿子

如果把override去了,将会出现一行警告,但编译器不会报错:

警告 1 “ConsoleApplication1.Son.ShowName()”隐藏了继承的成员“ConsoleApplication1.Mother.ShowName()”。如果是有意隐藏,请使用关键字 new

 结果为:

妈妈妈妈儿子

结论:

由此证明,C#默认情况下是不支持多态的,子类默认情况下有个new关键字。C#若要实现多台需要在方法前添加virtual和override

另外,多态指的是方法,详情见

转载于:https://www.cnblogs.com/Ming8006/p/6114604.html

你可能感兴趣的文章
Angular 5.0 学习4:Angular CLI常用指令
查看>>
ThreadPoolExecutors工作原理(一)
查看>>
用 python 做数据分析:pandas 的 excel 应用初探
查看>>
单子,想弄不懂都很难
查看>>
【趣味连载】攻城狮上传视频与普通人上传视频:序
查看>>
weex踩坑之旅第三弹 ~ 在weex中集成font-awesome
查看>>
前端权限控制方案
查看>>
PHP面试之四:逻辑与算法
查看>>
Date 对象
查看>>
Web安全的三个攻防姿势
查看>>
MongoDB via C#
查看>>
Puppeteer终探--前端监控
查看>>
微信朋友圈信息流可能采用算法排序吗?
查看>>
实战react技术栈+express前后端博客项目(9)-- 前端管理界面发表文章功能+后端对应接口...
查看>>
小而美的 React Form 组件
查看>>
struts2 --- 2.5版本 的正则表达式及通配符的使用
查看>>
聊聊Spring Cloud Config的ConfigClientWatch
查看>>
解读React源码(三):生命周期的管理艺术
查看>>
【148天】尚学堂高淇Java300集视频精华笔记(110-113)
查看>>
JS-函数
查看>>