C#
     class A
{
public string Get1()
{
return "A1";
} public virtual string Get2()
{
return "A2";
}
} class B:A
{
public string Get1() //此处会出现提示:隐藏继承的成员“Program.A.Get1()”。如果是有意隐藏,请使用关键字 new
{
return "B1";
} public override string Get2()
{
return "B2";
}
} static void Main(string[] args)
{
A a = new B();
Console.WriteLine(a.Get1()); //结果为A1,原因Get1()方法之间并没有形成重写,调用A的Get1()方法
Console.WriteLine(a.Get2()); //结果为B2,原因Get2()方法之间形成了重写,会调用B的方法
}

C#此段代码是能正常编译运行的,但是会出现警告提示。

另C#所有子父类方法的重写,必须在父方法上使用abstract,virtual等关键字修饰,且在子方法使用override关键字修饰。否则编译器则会视为不同的方法。

Java
public class A
{
public long Get()
{
return 4;
}
} public class B extends A
{
public int Get() //此处会出现错误提示,attempting to use incompatible return type,即“尝试使用不相容的返回类型”,可以看出对于同名同参方法,不管返回类型是否相同,编译器都会认为子类在尝试复写父类方法,这时会要求返回类型必须相同
{
return 5;
}
}

此段java代码编译不会通过

C#和Java在重写上的区别的更多相关文章

  1. c#的方法重写和的java方法重写有什么区别

    java code: package example; class m1 { public int getInt() { return 0; } } class m2 extends m1 { pub ...

  2. 当Java代码遇上抽象、重载加重写,一切都不美好了

    当Java代码遇上抽象.重载加重写.一切都不美好了 前几天调程序遇上个奇怪的bug.一直没找到问题,今天最终发现问题所在了,不说了先上代码(下面代码是演示样例代码,经測试,Java不存在这问题,安卓存 ...

  3. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  4. 【细说Java】Java的重写与隐藏

    重写与隐藏,有些书上或介绍上可能名称不一样,但都大差不差.以前只了解重写,隐藏也听说过,但没有详细了解过,趁现在,整理一下这两方面的内容吧. 首先,先说一下概念方面的东西. 重写 重写:子类继承了父类 ...

  5. java中==与equel的区别

    值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地 ...

  6. Java基础接口和抽象类区别(二)

    抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...

  7. Java和JavaScript之间的区别

    1.简介 通过优锐课核心java学习笔记中,我们可以看到,Java和JavaScript之间的区别.我们将在本文中比较Java语言和JavaScript语言.JavaScript由Netscape开发 ...

  8. Java基础 (上)

    基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...

  9. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

随机推荐

  1. VB检测按键CTRL+C的次数

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As IntegerPriv ...

  2. 《基于Apache Kylin构建大数据分析平台》

    Kyligence联合创始人兼CEO,Apache Kylin项目管理委员会主席(PMC Chair)韩卿 武汉市云升科技发展有限公司董事长,<智慧城市-大数据.物联网和云计算之应用>作者 ...

  3. swiper横向轮播(兼容IE8)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. MySQL update时使用联表,聚合

    原文地址 http://stackoverflow.com/questions/3022405/mysql-update-query-with-left-join-and-group-by UPDAT ...

  5. hihocoder-平衡树·SBT

    http://hihocoder.com/problemset/problem/1337 #1337 : 平衡树·SBT 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 ...

  6. PHP PDO函数库详解

    PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高效.目前而言,实现“ ...

  7. VHDL学习之模块调用

    http://wenku.baidu.com/link?url=SsRPUVQAOKDR8yWfDhQlceCwfZQkI-KQMLFKTDGAh3KAPr2NwEgvj0d_EZjdnsB99Upp ...

  8. postgresql Delete+ join

    using tablename as alias DELETE FROM tv_episodes USING tv_episodes AS ed LEFT OUTER JOIN data AS nd ...

  9. LR手动关联新手总结

    最近学习LoadRunner的时候深刻体会:新手入门真心不容易啊 今天一直在纠结LoadRunner的手动关联问题,之前刚开始看书的时候就看到了,不过当时想先放放,后面来细细研究, 今天看的时候在网上 ...

  10. PHP 文件包含总结 include require 命名空间 autoload spl_autoload_register 读取文件路径

    总结: 1. include或require包含其他文件 使用./或者 ../,这里的当前路径和上一层路径,取决于运行脚本的路径,会存在如下问题. 在写PHP程序时,经常要用到include或requ ...