方法的重载只能在同一个类中实现吗?
子类继承父类的话,子类实现父类方法的重载严谨意义上还算不算重载?
我查到的好多资料都是在同类中才有重载,但是也有少部分说,不同的类也可以进行重载,想问一下有没有知道的
函数重载的定义就是在同一个类当中,出现函数名相同且参数列表不相同的多个函数的情况,那么,同名的这些函数,都被称为重载函数。
不同类之间,分为两种情况:
对于一个类加载器对象而言,
在加载父类的时候,并不会因为其某个子类因为有个同名函数而自动加载这个子类,
在加载子类的时候,由于依赖关系也会加载父类,但是父类的加载是独立的过程,并不会因为父类有多个子类,每个子类在加载的时候都要加载一遍父类的信息。
由于父类和子类的加载过程都是相互独立的,所以,如果出现同名函数(参数列表不相同)也就当各自自有的普通函数来处理了。
方法重载是指当前类,不同类不叫重载了。
子类继承父类的方法是重写。
重载子类重写的方法,是属于子类的,是重载。
方法重载,当然是在一个类里面进行啦,你看一下官方是怎么说的
盲猜你的意思是 子类重载重写的父类方法? 但重载的方法已经是子类独有的了 跟父类的没关系了 所以还是在同类下
函数重载,是面向对象的编程语言里面的一个概念。
需要构建 类、对象、类信息 这三个概念才会比较容易解释。
类被加载器对象载入虚拟机,才会有被使用的机会。而加载过程中,就是形成类信息的一个过程(函数的代码也会被同时载入)。
类信息也会被虚拟机保存,里面主要保存了 加载器对象,类的全名,属性类型的列表,函数的列表。
其中,函数列表这里,可以重点了解一下:
以上说的都是类信息的内容,不要和对象、类这两个概念进行混淆。