Java简答题

来源:百度知道 编辑:UC知道 时间:2024/05/01 14:11:00
Java里面覆盖和重载有什么区别. 说简单点但是要说全
重载指在类中可以创建多个方法, 是在父类中么?

重载是在父类中用一个方法名建多个方法(以参数相区分)
覆盖是 在子类中的某个方法名(包括参数) 与父类某个方法完全一样

重载是发生在一个类内里的方法之间的 注意只是一个类
这些方法的方法名是相同的 但是所拥有的参数个数和参数类型一定要不一样 (注意)
返回值和作用域与重载无关 也就是说重载只看重参数的类型和个数

重写:
是发生在多个类之间的 而且这些类之间要是"父子"关系
假如现在父类有一个方法 子类重写了 那么注意下面几点:
1.如果父类的方法不是private的 那么子类都是可以重写的 不然报错
2.子类重写父类的方法必须要做到三点
a.方法名相同
b.参数相同
c.返回值相同
可见这些都与重写有关

那么子类重写了父类的方法 那么在 父类 a=new 子类();时
a.方法名()调用的就是子类的方法的具体实现 但有一种情况还是调用的是
父类的 那就是子类的方法是private

方法的覆盖Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被覆盖(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

重载只是本类中

重写是父类和子类的关系.是多态的一种表现形式.

重载是在一个类里面的,同一个类中如果有两个方法名相同但参数不同,这就叫重载.

补充问题:
是在当前类中.如果你父类中有方法fun(),子类中有方法fun(String str)这不叫重载,同一个类中才算.

两者根本就没有联系,有的都是区别