首页 > 其他分享 >重写和重载

重写和重载

时间:2023-10-18 23:56:20浏览次数:34  
标签:foo return 类型 重载 父类 重写 public

2023.10.18

1.

class A{
    public A foo() {
        return this;
    }
}
class B extends A {
    public A foo(){
        return this;
    }
}
class C extends B {
    _______
 
}
可以填入哪个而不报错
A
public void foo(){}
B
public int foo(){return 1;}
C
public A foo(B b){return b;}
D
public A foo(){return A;}

答案是C

重写 要求两同两小一大原则, 方法名相同,参数类型相同,子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。[注意:这里的返回类型必须要在有继承关系的前提下比较]

重载 方法名必须相同,参数类型必须不同,包括但不限于一项,参数数目,参数类型,参数顺序

再来说说这道题 A B 都是方法名和参数相同,是重写,但是返回类型没与父类返回类型有继承关系,错误 D 返回一个类错误 c的参数类型与父类不同,所以不是重写,可以理解为广义上的重载访问权限小于父类,都会显示错误

标签:foo,return,类型,重载,父类,重写,public
From: https://www.cnblogs.com/RynerLee/p/17773698.html

相关文章

  • 谷歌使用Jetpack Compose逐步重写Android 14,不会你还不知道吧?
    前言早在2019年,谷歌就推出了JetpackCompose,这是一种使用Kotlin开发原生安卓应用的编写方式,抛弃了常规基于XML的视图来设计应用UI,而是让开发者以声明方式创建设计。从那时起,谷歌就大力鼓励开发者在安卓应用中使用JetpackCompose,还使用JetpackCompose重构了其PlaySto......
  • 重载运算符详解
    重载运算符详解1.概念  运算符的重载,实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该运算符时就调用此函数来行使运算符功能。这个函数叫做运算符重载函数(常为类的成员函数)。  用函数的方式实现了(+-*/[]数组&&||逻辑等)运算符的重载。根据需求决......
  • lua中调用C#的重载方法
    localm1=typeof(CS.TestClass):GetMethod("Test")--获取c#中的重载函数localf1=xlua.tofunction(m1)--将重载函数转换为lua函数f1(self);lua是没有base的,也就是说想使用C#的base.Test(),直接调用子类的self:Test()是调用子类重写的方法,这个时候如果想调用父......
  • 详解如何通过JavaScript实现函数重载
    有的同学在开发中可能遇到过一个困扰,但是很少有人去解决这个问题,我这用一个例子展现出来constsearcher={};searcher.findAll=()=>{console.log("查询所有用户");};searcher.findByName=(name)=>{console.log("按照用户名称查询");};searcher.findByFirstN......
  • java基础:重写
    重写总结来说为:方法名相同,参数类型相同子类返回类型等于父类方法返回类型,子类抛出异常小于等于父类方法抛出异常,子类访问权限大于等于父类方法访问权限。详细的说明为:重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。 即外壳不变,核心重写!重写的......
  • JavaSE基础05(方法,重载,调用,类和对象,构造器,封装,继承,方法重写,抽象类,接口,异常)
    面向对象以类的方式组织代码,以对象的组织封装数据;一个Java文件只能有一个public类,必须和文件名一样;java文件里也可以没有public类; 方法的定义方法的使用,修饰符返回值类型方法名(参数类型参数名){方法体return返回值};参数类型包括:基本数据类型和引用数据类......
  • 重写与重载
    关于Java中的重写与重载方法重载(Overload)方法重载是Java中一个很重要的概念,它是指在一个类中定义多个同名但参数列表不同的方法。是类名的不同表现形式。Java编译器会根据方法调用时传递的参数来选择调用哪个方法。方法重载的优势在于可以为相似功能的方法提供统一的方法名,方便......
  • 【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
    文章目录一、函数指针回顾1、函数指针概念2、函数指针语法3、代码示例-函数指针示例二、为函数指针赋值重载函数1、为函数指针赋值重载函数2、代码示例-为函数指针赋值重载函数博客总结:重载函数:使用相同的函数名,定义不同的函数参数列表;判定标准:只有函数......
  • 重写equals方法是否需要重写hashcode方法的总结
    面试时经常会被问的一个问题:重写equals方法时是否需要重写hashCode方法,反过来又是怎样?这篇文章将对这个问题进行了一个总结和梳理一、考察的知识点首先需要明确下这个问题到底在考察我们的什么知识点,涉及到equals方法和hashCode方法的问题其实都是在考察把某个类的对象作......
  • C++友元和运算符重载
    友元classbuiding{friendvoidGoodboy(buiding*bui);public:intm_age;private:intm_size;};//全局函数voidGoodboy(buiding*bui){cout<<bui->m_age<<endl;//可以调用public中的m_agecout<<bui->m_size<<endl;//m_size调用需要声明友元}私有......