您的位置:首页 > 编程语言 > Java开发

JAVASE之多态

2016-01-07 22:43 375 查看
多态只存在与对象中,在一个类中只有非静态的成员函数有多态,
成员变量和静态的方法都是没有多态的,即是由编译时的类型来决定。

1.所谓的多态就是一个父类对象的引用指向了子类的,在实际的开发中这种用法是

很多的,使用多态的时候只能使用父类有的方法,如果要使用子类特有的方法就

要使用向下类型的转化。

2.注意多态中的成员变量和函数的区别,如果一个父类引用指向了一个子类的对象

当这个对象调用子类覆盖父类的方法的时候,这时候调用的其实就是子类的方法,但是

当使用该对象调用成员变量的时候就会调用父类的变量了,这里要注意覆盖只能在函数

中,而不能在成员变量中,可以简单的理解,成员变量的调用时根据编译时的类型来决定

的,而函数是运行时来决定的。

3.一般不会再子类中定义一个和父类一样的成员变量,如上的用法只是在面试的时候会

问道。

4.多态是对于对象而言的,没有对象就没有多态,在成员函数中,如果成员函数是静态的

函数,那么就没有多态的概念,当一个父类的引用指向子类对象的时候,这时如果调用

父类和子类都有的一个静态的方法的时候,就会调用到父类的静态的方法,而不会去调用

到子类的方法中,因为挡在编译的时候就已经将静态的方法加载到了静态的代码块中了,

所以此时运行的就是编译时候的类型的方法了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java se 多态