淘先锋技术网

首页 1 2 3 4 5 6 7

在Java编程语言中,多态、重载和重写是常用的面向对象编程的概念。虽然它们都与方法相关,但是它们具有不同的意义和使用方法。

多态是一种特性,允许不同的对象对相同的方法进行调用,在运行时确定对象的类型并执行相应的方法。这是Java编程语言中的一项重要而强大的特性。多态通过继承和实现接口来实现。以下是多态的示例:

class Animal{
void sound(){
System.out.println("Some sound");
}
}
class Cat extends Animal{
void sound(){
System.out.println("Meow");
}
}
class Dog extends Animal{
void sound(){
System.out.println("Bark");
}
}
class Test{
static void makeSound(Animal a){
a.sound();
}
public static void main(String args[]){
Animal a1 = new Animal();
Animal a2 = new Cat();
Animal a3 = new Dog();
makeSound(a1);//Some sound
makeSound(a2);//Meow
makeSound(a3);//Bark
}
}

在上面的示例中,makeSound() 方法是多态的。这个方法接收一个 Animal 对象,但具体传递的是哪个类型的 Animal 对象,最终执行的方法将由传递的对象决定。

重载是在同一类中定义多个方法,方法名相同但定义不同的参数类型和个数。在编译时通过传递的参数类型和个数来决定具体的方法,并执行相应的逻辑。以下是重载的一个示例:

class Addition{
static int add(int a, int b){
return a+b;
}
static int add(int a, int b, int c){
return a+b+c;
}
}
class Test{
public static void main(String args[]){
System.out.println(Addition.add(11, 11));  
System.out.println(Addition.add(11, 11, 11));  
}
}

在上面的示例中,我们定义了两个同名的方法,但是传递的参数是不同的。在执行时,根据不同的参数类型和个数来决定具体的方法。

重写是指在子类中定义一个与父类方法声明完全相同的方法,覆盖父类方法的实现。继承是实现重写的前提条件。以下是重写的一个示例:

class Animal{
void sound(){
System.out.println("Some sound");
}
}
class Cat extends Animal{
void sound(){
System.out.println("Meow");
}
}
class Test{
public static void main(String args[]){
Animal a = new Cat();
a.sound(); //Meow
}
}

在上面的示例中,我们定义了一个 Animal 类和一个 Cat 类。Cat 类继承了 Animal 类并重写了 sound() 方法。在 main() 方法中,我们使用 Animal 类型的引用来表示 Cat 对象,并调用了 sound() 方法。由于 Cat 类重写了 sound() 方法,因此输出将为 "Meow"。