java学习笔记——多态

来源:互联网 发布:最流行的网络语言 编辑:程序博客网 时间:2024/06/06 04:33

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

多态
多态的前提

要有继承或者实现关系
要有方法重写(可以不方法重写,但是这种多态一般没有意义)
有父类引用指向子类对象
概述

对象在不同时刻表现出来的不同的状态 针对引用类型

编译期间的状态 运行期间的状态 为了提高代码的扩展性和可维护性。
class Animal
{
String name;
int age;
public Animal(){}
public void speak(){
System.out.println(“我是父类”);}
}
class Dog extends Animal{
String Color;
public void speak(){
System.out.println(“我是狗类”);}
}
class cat extends Animal{
String Color;
public void speak(){
System.out.println(“我是猫类”);}
}
public class AnimalTest{
public static void main(String[] args){
Animal a=new Dog();
a.speak();
Dog b=new (Dog)Animal();
b.speak();
}
}
多态的成员特点

成员变量

编译运行都看左边,如果运行的父类中有这个变量就不会报错,运行看左边的结果是谁

成员方法

编译看左边,运行看右边。

多态的弊端和解决方法

父类引用不能使用子类特有的方法
解决方法父类向下转型 fu a= new (fu)zi();
类型转换异常 java.lang.ClassCastExcepton:类型转换异常。出现这个异常的原因是多态没有继承

0 0