黑马程序员——Java多态
来源:互联网 发布:添加字段sql 编辑:程序博客网 时间:2024/06/03 23:06
多态:指同一个实体同时具有多种形式,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给变量的对象决定,当编译时类型和运行时类型不同时,就出现多态。
体现:父类引用或者接口的引用指向了自己的子类对象。//Person p = new Student();
多态的优点:提高了程序的扩展性。
多态的缺点:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。
多态的前提:
1、必须要有关系,如继承、实现;
2、通常有覆盖操作。
实现多态的机制:
父类的引用变量可以指向子类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的真正实例对象的方法,也就是内存里正在运行的那个对象的方法,
而不是引用变量的。
类型中定义的方法。
多态中成员变量的特点:静态成员函数和所有变量,无论编译还是运行时,全部参照父类;非静态的函数,编译参照父类,运行参照子类。
class Dog{void eat(){System.out.println("一般的狗吃一般的狗粮!");}}class HashDog extends Dog{void eat(){System.out.println("哈士奇吃哈士奇的狗粮!");}}class ZangAoDog extends Dog{void eat(){System.out.println("藏獒吃藏獒的狗粮!");}}//定义一个动物园喂的方法class Zoo{void feed(Dog d){d.eat();}}public class Demo {public static void main(String[] args) {Dog hd = new HashDog();Dog zd = new ZangAoDog();Zoo z = new Zoo();z.feed(hd);z.feed(zd);}}
输出:
哈士奇吃哈士奇的狗粮!
藏獒吃藏獒的狗粮!
0 0
- 黑马程序员——Java基础--多态
- 黑马程序员——Java基础-多态
- 黑马程序员——Java多态
- 黑马程序员——Java 基础:多态
- 黑马程序员—java总结
- 黑马程序员—java多线程
- 黑马程序员—Java GUI
- 黑马程序员—JAVA多线程
- 黑马程序员—JAVA枚举
- 黑马程序员—JAVA内省
- 黑马程序员—JAVA注解
- 黑马程序员—JAVA泛型
- 黑马程序员—Java 反射
- 黑马程序员—Java概述
- 黑马程序员—Java基础知识
- 黑马程序员—java多线程
- 黑马程序员—JAVA基础
- 黑马程序员—Java多线程
- 小团队 机器学习
- 用R&Python在云端运行可扩展数据科学
- 易开发创始人潘俊勇:这些年我遇到的那些坑
- ThoughtWorks面试失败
- 20151018
- 黑马程序员——Java多态
- ReactiveCocoa基础篇
- android开发慎用boolean型变量
- MVC - File download action
- 黑马程序员——Java线程技术
- 关于C语言中Implicit declaration of function ‘XXXX’ is invalid in C99警告
- [LeetCode 293] Flip Game
- RAID基础知识总结
- Item 41:隐式接口与编译期多态 Effective C++笔记