8.10 准确覆写 @Override

Posted 盘思动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.10 准确覆写 @Override相关的知识,希望对你有一定的参考价值。

  • @Override 准确覆写----代码规范问题,
class Channel 
    public void connect()
        System.out.println("***** Channel ******");
       


class DatabaseChannel extends Channel 
    @Override // 明确表示,该方法是个覆写的方法;如果connect写错了,会报错;没真正覆写都会报错
    public void connect()
        System.out.println("子类定义的通道连接操作...");
    


public class HelloWorld 
    public static void main(String args[])
        new DatabaseChannel().connect();
    

覆写(Override)和重载(Overload)的比较

C# 中有覆写(Override)和重载(Overload),
我们该如何理解他们呢?

参考技术A 其实很本质的区别就是看函数特征:覆写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。
函数特征包括函数名,参数的类型和个数。
Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这个子类的这个函数的时候就看不见父类(或超类)的函数了,它被覆盖掉了。
比如:Derived继承了Base,Base里面有void A(int a)
那么如果你Derived里面觉得A写得不好或不适合这个类,你想重新再写一遍A里的代码,那么就写override void A(int a)这样,原来的那个函数就被你新写的这个覆盖掉了。
Overload 是重载,就是说函数名相同,函数特征不同,系统会根据你提供的参数来调相应的函数。
比如:void A(int a)和void A(int a,int b)
如果你用的是A(1)那么调的是第一个,如果是A(1,1)那么调的是第二个。本回答被提问者采纳
参考技术B Override,一般指函数
Overload,可以是运算符

以上是关于8.10 准确覆写 @Override的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中继承时方法的重载(overload)与重写/覆写(override)

15-多态

JAVA编程规范-OOP规范

重载和覆写有啥区别?

Annotation--注解

java开发手册-编程规约-OOP 规约