首页 > 试题广场 >

类 ABC 定义如下:

[单选题]

ABC 定义如下:

1 public  class  ABC{

2 public  int  max( int  a, int  b) {   }

3

4 }

将以下哪个方法插入行 3 是不合法的。( )。

  • public  float  max(float  a, float  b, float  c){  }
  • public  int  max (int  c,  int  d){  }
  • public  float  max(float  a,  float  b){  }
  • private  int  max(int a, int b, int c){  }


发表于 2019-10-29 10:19:11 回复(0)
选B,
细说一下重写和重载:
这两个都是多态的一种表现形式。
重载:
    1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。
    2、 重载是多态在编译期的表现形式
    3、 重载的判定只有两个条件(其他的条件都不能作为判定):
            1、 方法名一致
            2、形参列表不同
重写:
    1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着这个位置往上找,直到找到父类的同名方法
    2、重写只发生在可见的实例方法中:
            1、静态方法不存在重写,形式上的重写只能说是隐藏。
            2、私有方法也不存在重写,父类中private的方法,子类中就算定义了,就是相当于一个新的方法。
            3、静态方法和实例方法不存在相互重写。
    3、重写满足一个规则:两同两小一大
            1、两同:方法名和形参列表一致
            2、两小:重写方法的返回值(引用类型)和抛出异常,要和被重写方法的返回值(引用类型)和抛出异常相同或者是其子类。注意,一旦返回值是基本数据类型,那么重写方法和被重写方法必须相同,且不存在自动拆装箱的问题。
            3、一大:重写方法的访问修饰符大于等于被重写方法的访问修饰符。
发表于 2018-07-12 10:20:40 回复(10)
首先,了解重载的定义,Java的方法重载,就是在同一个类中可以创建多个方法,它们具有相同的名字,但具有不同的参数个数哥不同定义,调用方法时通过传递给它们的不同参数个数和类型来决定具体使用哪个方法。当方法同名时,至少需要下面之一不同: 1.参数个数不同 2.对应位置上的参数类型不同 看看B选项,方法同名不管,参数个数相同(都是2个),对应位置上的参数类型都相同(都是int类型),所以判断该方法不能插入。
发表于 2017-07-21 11:39:51 回复(2)
B选项方法名、形参列表和返回值类型与题目完全一样,故既不是重写也不是重载
发表于 2019-03-03 19:50:05 回复(0)
重载访问修饰符一般不变,不过可以变得更大
发表于 2017-05-23 20:37:05 回复(0)
重载是Java多态性(在一个类中)的一种表现方式,要注意以下几点:
    1.参数列表不同。包括参数个数、参数类型、参数顺序等的不同;
    2.不能通过方法的访问权限、返回值类型和抛出的异常类型来判断重载;
    3.对于继承来说,如果父类方法的访问权限为private,那么就不能在子类对其重载;如果子类也定义了一个同名的函数,只是一个新方法,并不是重载方法。
发表于 2018-06-20 20:00:45 回复(0)
B,同样的函数,参数都是int
发表于 2017-05-24 08:45:59 回复(0)
这题考察类的重载,B本质上与第2行一样。
发表于 2017-05-23 22:45:01 回复(0)
本题主要考察的就是重载
重载:指的是在一个类中定义了多个方法名相同,但参数个数、参数类型不同的方法(返回值、访问权限、抛出的异常可以不同)。
重写(覆盖):指子类中的方法覆盖父类中的相同方法(方法名、参数、返回值、抛出的异常),即重写父类方法。
方法重写应遵循“三同一小一大”原则:
“三同”:即方法名相同,形参列表相同、返回值类型相同;
“一小“:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等;
“一大”:子类方法的访问修饰符应比父类方法更大或者相等。
编辑于 2021-12-22 11:40:31 回复(0)
借用:重载就是一句话:同名不同参,返回值无关。覆盖/重写:同名同参
发表于 2020-09-04 07:55:17 回复(0)
<p>方法重载:方法名相同,参数个数或者参数类型不同,或者方法返回类型不同</p>
发表于 2020-08-20 22:10:10 回复(0)
重载:方法名相同,与访问修饰符和返回类型无关,主要是参数的类型和个数不同。 B选项与第二行,参数类型和个数一致!所以错误。
发表于 2019-01-18 17:06:25 回复(0)
直接说重载哦
发表于 2022-03-15 14:37:36 回复(0)
选B,
细说一下重写和重载:
这两个都是多态的一种表现形式。
重载:
    1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。
    2、 重载是多态在编译期的表现形式
    3、 重载的判定只有两个条件(其他的条件都不能作为判定):
            1、 方法名一致
            2、形参列表不同
重写:
    1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着这个位置往上找,直到找到父类的同名方法
    2、重写只发生在可见的实例方法中:
            1、静态方法不存在重写,形式上的重写只能说是隐藏。
            2、私有方法也不存在重写,父类中private的方法,子类中就算定义了,就是相当于一个新的方法。
            3、静态方法和实例方法不存在相互重写。
    3、重写满足一个规则:两同两小一大
            1、两同:方法名和形参列表一致
            2、两小:重写方法的返回值(引用类型)和抛出异常,要和被重写方法的返回值(引用类型)和抛出异常相同或者是其子类。注意,一旦返回值是基本数据类型,那么重写方法和被重写方法必须相同,且不存在自动拆装箱的问题。
            3、一大:重写方法的访问修饰符大于等于被重写方法的访问修饰符。
函数重载只看参数个数和类型,不看返回值。
以上三个函数都可以。
但不能出现只是返回值不同的重载。

int biggest(int a,int b);
{
......
}
float biggest(int a,int b)
{
......
}


发表于 2019-03-31 16:16:22 回复(0)
重载必须是参数的类型或者个数不一样才行,跟返回值类型没有关系
编辑于 2024-03-05 16:44:20 回复(0)
这是C++代码???啥玩意
发表于 2023-03-14 13:03:03 回复(0)
重载:与参数列表的类型和个数有关,与参数列表的顺序无关,与返回值类型无关 重写(两同两小一大):与方法名和参数列表有关,方法名和参数列表必须保持相同,重写的方法访问权限只能更大,返回值类型只能更小,抛出的异常只能更小
发表于 2022-10-23 18:36:10 回复(0)
重载:同名不同参 eg:public int max(int a,int b) / public int max(int a,int b,int c)
重写:同名同参 eg:public int max(int a,int b) /public int max(int a,int b)
本题陷阱: public int max(int a,int b) 和 public int max(int d,int c) 虽然参数名不一样,但是传输的参数类型都是一样的 所以并不符合重载的特性
但是, 由于参数名不一样,所以又不符合重写的特性,故选B
发表于 2022-10-23 14:15:48 回复(0)
本题主要考查方法重载。 方法重载时,需要注意参数类型,参数顺序,参数个数。上面三个条件满足其一便构成重载。 不能通过返回类型判断重载。
发表于 2022-09-16 21:23:16 回复(0)
选B,
细说一下重写和重载:
这两个都是多态的一种表现形式。
重载:
    1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。
    2、 重载是多态在编译期的表现形式
    3、 重载的判定只有两个条件(其他的条件都不能作为判定):
            1、 方法名一致
            2、形参列表不同
重写:
    1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着这个位置往上找,直到找到父类的同名方法
    2、重写只发生在可见的实例方法中:
            1、静态方法不存在重写,形式上的重写只能说是隐藏。
            2、私有方法也不存在重写,父类中private的方法,子类中就算定义了,就是相当于一个新的方法。
            3、静态方法和实例方法不存在相互重写。
    3、重写满足一个规则:两同两小一大
            1、两同:方法名和形参列表一致
            2、两小:重写方法的返回值(引用类型)和抛出异常,要和被重写方法的返回值(引用类型)和抛出异常相同或者是其子类。注意,一旦返回值是基本数据类型,那么重写方法和被重写方法必须相同,且不存在自动拆装箱的问题。
            3、一大:重写方法的访问修饰符大于等于被重写方法的访问修饰符。
发表于 2022-07-11 19:56:04 回复(0)