java类内部的方法名称可以相同吗?

本文探讨了Java中类内部方法名称可以相同的现象,重点介绍了类内部多态(重载)的概念,包括有参和无参构造方法示例,并澄清了XML中SQL标签id的唯一性问题。此外,还涉及接口中方法的多态实现。

答:java类内部的方法名称可以相同。

原因:
java的一个特性是“多态性”。多态性包括两种:
①类内部多态(重载)。
②继承中多态(覆写)。

类内部的多态:在一个类的内部如果有多个方法的方法名相同参数列表不同

由类内部多态的定义可知,同一个类中,可以出现相同名称的方法,但是参数列表一定要不同。其中最典型的就是有参和无参的构造方法

实体类中有参和无参的构造方法:

	//无参构造方法
	public Animal() {
	
    }
    

	//无参构造方法
    public Animal(String lb, String name, Integer age) {
        this.lb = lb;
        this.name = name;
        this.age = age;
    }

同理,在抽象类和接口中,在参数列表不同的情况下,也可以出现方法名称相同的方法。

抽象类示例:

public abstract class b {
   abstract int get();
   abstract int get(int a);
}

接口示例:

public interface a {
    int get();
    int get(int a);
}

注意:mybatis框架xml标签与接口绑定

上面说到,接口中可以定义两个方法名一样参数列表不同的方法,那是不是意味着xml文件中的sql语句标签(以select标签为例)中的id是可以重复的呢?
答案:id是不可以重复的。因为id是唯一标识,与接口方法绑定,形成映射。
如果xml存在重复id,maven项目启动时会出现报错信息:

org.springframework.beans.factory.UnsatisfiedDependencyException:……

Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.od.dao.idao.CityMapper.BaseResultMap
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YD_1989

分享不易,非常感谢您的鼓励支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值