.net和JAVA面向对象,继承有趣的细节
2024-08-28 01:41:31
原型是同事间讨论的一道面试题。估计这题秒杀了不少人,LZ也被秒了。
但这个题里隐藏了一个很有趣的细节,这个细节不说清楚,不少人会其实死的冤枉。
这是C#的代码。
class Program
{
static void Main(string[] args)
{
Father s1 =new Son1();
Son1 s2 =new Son1();
s1.Say();
s2.Say();
Console.Read();
}
} public class Father
{
public void Say()
{
Console.WriteLine("This is Father's method");
}
} public class Son1 : Father
{
public void Say()
{
Console.WriteLine("This is Son1's method");
}
}
执行结果是 This is Father's method
This is Son1's method
不知大家有没有答对,LZ想也没想直觉就是
This is Son1's method
This is Son1's method
因为之前看过JAVA的内容。
这是原贴:http://blog.csdn.net/zhengzhb/article/details/7496949
仔细想了下.NET算是想通了。但这事就有趣了。
因为JAVA的结果和.NET完全两样。(LZ学设计模式什么的都是照着JAVA学的,之前一直感觉也相信着两者在面向对象方面是一个模子)。
这是JAVA的代码
class Father {
public void Say(){
System.out.println("This is Father's method");
}
} class Son1 extends Father{
public void Say(){
System.out.println("This is Son1's method");
}
} public class FF {
public static void main(String[] args){
Father s1 = new Son1();
Son1 s2=new Son1();
s1.Say();
s2.Say();
}
}
结果是
This is Son1's method
This is Son1's method
最新文章
- iOS-提高iOS开发效率的方法和工具
- zz转码问题
- 鸟哥笔记:postfix的一些重要配置文件
- Oracle datafile特殊字符处理
- 定制ckeditor的菜单
- [JavaScript] JavaScript作用域深度解析
- 移动web页面支持弹性滚动的3个方案
- 使用测试思路快速学习Python-适合测试工程师的学习方法
- 【Android Studio安装部署系列】四十二、Android Studio使用Eclipse中的keystore为App签名
- sql的查询语句的总结
- Newtonsoft.Json WindowPhone7.1
- SV class
- SQL连接服务器链接失败
- Visual Studio 2015+InstallShield 2015
- 81. Search in Rotated Sorted Array II (Array; Divide-and-Conquer)
- 关于new和delete
- Structs配置文件 zg项目介绍
- 希尔排序之Java实现
- Spring3数据库事务管理机制
- MAPE 平均绝对百分误差