Java面向对象编程:类继承与多态问题实例展示
在Java中,面向对象的特性主要体现在类的继承和多态性上。以下我们将通过实例来详细理解这两点。
- 类继承
例子:假设我们有一个动物基类(Animal),然后有狗(Dog)和猫(Cat)子类。
// Animal基类
class Animal {
void eat() {
System.out.println("Animal eats");
}
}
// Dog子类继承Animal基类
class Dog extends Animal {
void bark() {
System.out.println("Dog barks");
}
}
// Cat子类继承Animal基类
class Cat extends Animal {
void purr() {
System.out.println("Cat purrs");
}
}
- 多态性
多态性主要体现在方法重写(Override)和方法覆盖( hiding )。
- 方法重写:在子类中,如果父类中有相同名称的方法,并且子类想改变父类该方法的行为,就需要进行重写。
// Dog子类重写Animal基类eat方法
class Dog extends Animal {
@Override
void eat() {
System.out.println("Dog eats dog food");
}
}
- 方法覆盖:在子类中,如果父类中有相同名称的方法,并且方法的参数列表不同(即返回类型或形参不完全相同),那么子类可以定义一个与父类同名但参数不同的方法,这种现象称为方法覆盖。
注意:在多态性应用中,Java使用关键字final
来声明具有方法重写特性的方法。如果某个方法被声明为final
,则子类不能对该方法进行重写。
还没有评论,来说两句吧...