java学习笔记——多态
2015-08-05 00:19
351 查看
——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:类型转换异常。出现这个异常的原因是多态没有继承
多态
多态的前提
要有继承或者实现关系
要有方法重写(可以不方法重写,但是这种多态一般没有意义)
有父类引用指向子类对象
概述
对象在不同时刻表现出来的不同的状态 针对引用类型
编译期间的状态 运行期间的状态 为了提高代码的扩展性和可维护性。
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:类型转换异常。出现这个异常的原因是多态没有继承
相关文章推荐
- java学习笔记——继承
- java学习笔记——封装
- Jsmooth Java文件打包成exe文件(可以在没安装JDK的环境下运行)
- 欢迎使用CSDN-markdown编辑器
- Java日志框架——SLF4J+Logback配置
- Struts1.3 学习笔记
- 记录下eclipse下的插件安装,查看及删除方式
- Java日志框架——Logback配置语法
- eclipse 快捷键
- 注解(Annotation)自定义注解入门(转)
- spring多数据源配置
- activemq与spring整合,自动消费队列的配置与代码
- activemq与spring整合,生产者端配置
- spring-amqp 整合rabbitmq生产者配置与代码
- spring-amqp整合rabbitmq消费者配置和代码
- web.xml文件中的Listener元素的作用
- Java基础-Date类
- spring读取配置文件
- eclipse 常用设置,常用快捷键修改
- java内部类学习笔记