方法的重写(Overiding)和重载(Overloading)是Java多态性的不同的表现。
Overriding是父类与子类之间多态性的一种表现;
Overloading是一个类中多态性的一种表现。
Overriding:在子类中定义某个方法与其父类有相同的名称和参数;子类的对象使用这个方法时,将调用子类中的定义。
对它而言,父类中的定义如同被“屏蔽”了。
Overloading:在一个类中定义了多个同名的方法,它们或有不同的参数或有不同的参数类型或有不同的参数次序;不能通过访问权限、返回类型、抛出的异常进行重载。
Overiding:
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类更多的异常(子类可以不抛出异常)。
4、存在于父类与子类之间。
5、方法被定义为final不能被重写。
Overloading:
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只返回值不同的方法名。
3、存在于父类和子类、同类中。
Animal类:
package wei.peng.overriding_overloading;
public class Animal {
public void introduce(){
System.out.println("我是动物!");
}
}
Cat类:
package wei.peng.overriding_overloading;
public class Cat extends Animal {
//重写了父类的introduce,实现了overrding(重写)
public void introduce(){
System.out.println("我是一只猫!");
}
//实现了Overloading(重载)
public void introduce(String name){
System.out.println("我是一只猫, 我的名字叫:" + name);
}
}
Dog类:
package wei.peng.overriding_overloading;
public class Dog extends Animal {
//重写了父类的introduce,实现了overrding(重写)
public void introduce(){
System.out.println("我是一只狗!");
}
//实现了Overloading(重载)
public void introduce(String name){
System.out.println("我是一只狗, 我的名字叫:" + name);
}
}
测试类:
- package wei.peng.overriding_overloading;
-
-
public class Test {
-
-
public static void main(String[] args) {
-
-
-
Animal animal1 = new Animal();
-
Animal animal2 = new Cat();
-
Animal animal3 = new Dog();
-
- animal1.introduce();
- animal2.introduce();
- animal3.introduce();
-
-
-
Cat cat = new Cat();
- cat.introduce();
-
cat.introduce("JACK");
- }
-
- }
分享到:
相关推荐
Java中的重写(Override)和重载(Overload)是面向对象编程中的两个核心概念,它们都是为了提高代码的灵活性和可复用性。 **重写(Override)** 是指子类能够重新定义父类中非私有(public或protected)的方法,以便在...
Overload(重载):在C++程序中,可以将语义、功能相似的几个...Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtua
重载(overload)与覆盖(override)是面向对象编程中的两个重要概念,它们在不同的编程语言中表现出来的特性略有不同,尤其在PHP和JAVA这两种广泛使用的语言中表现得尤为明显。 首先,重载(overload)是指在同一个类中...
简介•Overload: 重载,指函数同名,但是参数个数不同、或者参数类型不同的多个实现。(如果参数相同但是仅仅返回值不同不是重载,编译器会报错。) 编译器判断重载函数:•第一步,是确定该调用中所考虑的重载函数...
2. **方法重写与重载(Override & Overload)** - 方法重载(Overload)指的是在一个类中可以有多个同名方法,但这些方法的参数列表必须不同(包括参数个数、类型或顺序)。选项B错误地试图通过仅改变返回类型来重载...
7. override与overload:override重写基类的虚方法,确保在子类中具有不同的实现;overload是方法多态,允许在同一类中定义多个同名但参数列表不同的方法。 8. 索引器:类似于数组,允许通过索引访问对象的成员,如...
4. **多态**:掌握抽象类、接口、重写(Override)、重载(Overload)的概念。 5. **构造器**:了解构造函数的作用,掌握构造器的使用和重载。 四、异常处理 1. **异常体系**:学习Java中的异常结构,了解Checked和...
7. override与overload: override用于重写基类的虚方法,保持方法签名不变;overload是方法多态性的一种形式,通过改变方法参数列表实现。 8. 索引器: 索引器允许对象像数组一样通过索引访问,使得类可以像集合...
3. **Java 重写(Override)与重载(Overload)**:重写是指子类重新定义父类的某个方法,保持相同的方法名、返回类型和参数列表,但可以有不同的实现。重载则是指在同一个类中创建多个同名方法,但通过不同的参数列表...
5. Override与重载的区别: - 重载(Overload)是通过方法名相同但参数列表不同来实现多态,方法签名必须不同。 - Override(重写)是在子类中重新定义基类的虚方法,以改变其行为,方法签名需完全相同。 6. B/S...
Java实现多态的机制主要是通过方法重载(Overload)和方法重写(Override),以及向上转型实现的。abstract类和interface的区别也是面试常问问题,以及内部类与静态内部类的区别和使用。 异常处理是Java编程中不可忽视...
+ 与方法的访问修饰符无关,与方法返回值无关,与参数名无关 四、继承(Inheritance) * 作用:通过继承可以实现非私有资源共享,代码复用 * 语法规则: + 两个对象之间要符合 is-a 关系(是一个) + 定义继承...
3. override与overload - override:重写,子类中的方法重写父类中的虚方法,保持方法签名不变,改变其实现。 - overload:重载,同名方法的不同版本,通过不同的参数列表区分。 4. C#中的索引器 - 索引器允许...
重载(Overload)和重写(Override)是多态性的体现。重载发生在同一类中,通过不同的参数列表实现相同方法名的不同功能;重写发生在子类中,子类方法与父类方法具有相同的签名,并且改变了原有行为。 关于Java的...
- 子类错误重写:`public void method(String arg, int index)` —— 错误,这实际上是重载(Overload),而非重写。 ##### 规则三:返回类型必须相同 - **解释**:子类重写父类的方法时,返回类型必须与父类方法...
- 业务逻辑层(BLL):包含业务规则和处理,与DAL交互,处理数据验证和业务逻辑。 - 表现层(Presentation Layer):用户界面,与BLL交互,处理用户输入和显示结果。 三层架构的优点在于职责分明,可维护性强,易于...