面向对象java语言中的多态概念
多态:简单的说,可以理解成事物存在的多种体现形态。
从以下几个方面给大家介绍多态。
1.多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2.多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖。
3.多态的好处
多态的出现大大提高了程序的扩展性。
4.多态的弊端
只能使用父类的引用访问父类的成员。
多态还有一个概念就是多态之间的转型,就是将父类对象转化为子类对象类型。以下代码可以体现转型的概念。
//定义一个抽象父类animal,因为不同动物吃的东西不一样,所以只定义一个方法名eat,不定义方法体
abstract class animal{
public abstract void eat();
}
class cat extends animal{//定义一个cat类,继承父类animal
public void eat() {//子类定义一个eat方法,覆盖了父类eat方法
System.out.println("eat fish");
}
public void sleep(){
System.out.println("i'm sleeping");//子类特有sleep方法
}
}
public class people {
public static void main(String[] args) {
animal c=new cat();
c.eat();
cat p=(cat)c;//将父类类型强制转化为子类类型,可以调用子类特有的方法
p.sleep();
}
}
运行结果如下