基类C#和Java不同的行为

用户名
using System;
using System.Collections.Generic;
using System.Text;

public class Based
{
   public string fun()
    {
        return " I am based";
    }
}

public class Derived :Based
{
    public string fun()
    {
        return " I am derived";
    }

}

namespace ConsoleApplication8
{
    class Program
    {

        static void Main(string[] args)
        {
            Based br = new Derived();;

            Console.Write(br.fun());
        }


    }
}

大家好,我已经用Java和c#编写了一小段代码。

但是我得到了不同的输出。你能解释一下吗?

在Java中,我得到“我是派生的”,而在C#中,我得到“我是基于的”。你能告诉我为什么吗?以及我们什么时候使用以下语法

Baseclass obj = new Derivedclass().
迈克尔·尤沃诺

那就是多态Java和C#具有不同的默认设置。

JavaDerived class始终会覆盖其父方法,但是在C#中,我们可以定义从父类创建的子对象是否覆盖其父方法。

这是在C#中的方法:

超越

  1. virtual分类添加到父方法中。
  2. override分类添加到孩子的方法中。

不超越

  1. virtual分类添加到父方法中。
  2. new分类添加到孩子的方法中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章