【发布时间】:2014-04-25 17:36:04
【问题描述】:
我和我的 Java 程序员朋友正在讨论继承问题。当我们对同一种代码得到不同的结果时,谈话几乎达到了高潮。 我在 .NET 中的代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleDemo
{
class Program
{
static void Main(string[] args)
{
Base objBaseRefToDerived = new Derived();
objBaseRefToDerived.Show();
Console.ReadLine();
}
}
public class Base
{
public virtual void Show()
{
Console.WriteLine("Show From Base Class.");
}
}
public class Derived : Base
{
public void Show()
{
Console.WriteLine("Show From Derived Class.");
}
}
}
给我这个结果:
从基类显示。
而这段代码在Java中的代码
public class Base {
public void show() {
System.out.println("From Base");
}
}
public class Derived extends Base {
public void show() {
System.out.println("From Derived");
}
public static void main(String args[]) {
Base obj = new Derived();
obj.show();
}
}
给我这个结果:
从派生
为什么.NET调用基类函数而java调用派生类函数? 如果有人能回答这个问题,或者只是提供一个链接,我将不胜感激。
我希望提供的代码没有问题。
【问题讨论】:
-
你没有在 csharp 中覆盖。
-
@SotiriosDelimanolis 所以你的意思是在java中它会自动被覆盖
标签: c# java inheritance