Java中多态的理解
2013-07-08 19:56
323 查看
一开始对多态也是半知半解的,最近又要用到多态,所以又温习了一下
多态是继承中的一种特别的
for example
class FatherClass
{
function1(){a1}
function2(){a2}
function3(){a3}
}
class SonClass extends FatherClass
{
function1(){b1} //覆盖父类方法
function2(){b2} //覆盖父类方法
function4(){xx} //新增方法
}
FatherClass fc = new SonClass(); //前后两类型不同就产生多态了(应该说是继承关系的类型,前者一定要是后面的父类)
fc.function1(); //b1功能
fc.function2(); //b2功能
fc.function3(); //a3功能
fc.function4(); //出错啦
父类对象时编译时类型,子类是运行时类型
子类继承了父类的方法,因为父类之下的子类有很多,而且各种不同,
所以子类就会去复写父类中提供的一些方法,以至于子类的方法返回结果和父类不同,
当子类的方法覆盖了父类的方法时,引用对象所指向的是子类此时的方法属性和在父类中没有被覆盖的方法,
而那些子类自己新增加的特殊方法则不体现出来.
简而言之就是多态的出现使相同父类的事务有不同的结果,从而体现出多种状态---->多态!!
多态是继承中的一种特别的
for example
class FatherClass
{
function1(){a1}
function2(){a2}
function3(){a3}
}
class SonClass extends FatherClass
{
function1(){b1} //覆盖父类方法
function2(){b2} //覆盖父类方法
function4(){xx} //新增方法
}
FatherClass fc = new SonClass(); //前后两类型不同就产生多态了(应该说是继承关系的类型,前者一定要是后面的父类)
fc.function1(); //b1功能
fc.function2(); //b2功能
fc.function3(); //a3功能
fc.function4(); //出错啦
父类对象时编译时类型,子类是运行时类型
子类继承了父类的方法,因为父类之下的子类有很多,而且各种不同,
所以子类就会去复写父类中提供的一些方法,以至于子类的方法返回结果和父类不同,
当子类的方法覆盖了父类的方法时,引用对象所指向的是子类此时的方法属性和在父类中没有被覆盖的方法,
而那些子类自己新增加的特殊方法则不体现出来.
简而言之就是多态的出现使相同父类的事务有不同的结果,从而体现出多种状态---->多态!!
相关文章推荐
- 【Java】java多态的理解
- java -----理解java的三大特性之多态
- java四大特性理解(封装继承多态抽象)
- 探探对java多态的理解
- 理解Java中的多态
- java中对面向对象的三大特征:封装、继承、多态的理解
- 对Java多态的深入理解
- 【Java基础】Java中多态的理解
- Java中多态的一些简单理解
- java提高篇之理解java的三大特性——多态
- java的多态的理解
- 我理解的java多态
- java 多态理解
- 初步理解Java的三大特性——封装、继承和多态
- java多态的理解
- Java学习笔记(34)--理解java的三大特性之多态
- 深入理解Java三大特性中的多态
- 黑马程序员-Java_另类理解多态AND理解父类引用指向子类对象的方式
- java提高篇(三)-----理解java的三大特性之多态
- java多态的理解