黑马程序员----多态
来源:互联网 发布:php工程师工资低 编辑:程序博客网 时间:2024/06/03 14:25
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
定义:多态:事物存在的多种体现形态多态的体现:在对象上的体现:父类的引用指向了自己的子类猫 m=new 猫();动物 m=new 猫();在方法上的体现:方法的复写和重写多态的意义1、定义一些事物的共同特性,通过继承同一个父类2、提高代码扩展性,因为可以用父类来代替子类接收实参多态的弊端1、父类的方法会丢失2、父类引用只能访问父类中有的方法,但是访问的是子类中的方法(原因:在编译时参阅的是父类引用是否有该方法,但是运行时则参阅的是具体实例子类),但是对于字段则没有这回事,引用是谁就访问谁的。 静态方法是不能被复写的,所以也不存在访问到子类的该方法------多态注意点1、向下转型时要注意:只有当父类引用指向自己的子类时,才能把该引用转换为子类,例如 animal a=new cat(),cat c=(cat) a,切勿 出现把父类对象强转为子类2、多态自始至终都是子类对象在做着改变3、在转型时,判断一个引用变量的所属类型 a instanceof cat 判断a是不是cat的子类多态边缘知识点Object中的equals、通过复写这个方法,定义自己的比较方式。toString多态的应用小例/*** 勤快动手,江山我有。*/package com.edu;/*** 目的:旨在学习多态的使用* 需求:模拟电脑主板与网卡声卡等关系,让主板和声卡、网卡通过PCI槽解耦* @author duanlang**/public class Polymorphism {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubnew MainBoard().useCard(new SoundCard());new MainBoard().useCard(new NetCard());}}/*** 定义PCI标准* @author duanlang**/interface PCI{public void open();public void close();}/*** 定义实现了PIC接口的声卡* @author duanlang**/class SoundCard implements PCI{public void open(){System.out.println("open soundcard");}public void close(){System.out.println("close soundcard");}}/*** 定义实现了PIC接口的网卡* @author duanlang**/class NetCard implements PCI{public void open(){System.out.println("open netcard");}public void close(){System.out.println("close netcard");}}class MainBoard{public void useCard(PCI pci){pci.open();pci.close();}}
----------------------ASP.Net+Unity开发、.Net培训、期待与您交流! --------------------
0 0
- 黑马程序员_多态
- 黑马程序员_多态
- 黑马程序员_多态
- 24.黑马程序员-多态
- 黑马程序员-多态
- 黑马程序员---多态
- 黑马程序员_多态
- 黑马程序员-多态
- 黑马程序员 多态、重载
- 黑马程序员_java 多态
- 黑马程序员---多态
- 黑马程序员-多态
- 黑马程序员-继承,多态
- 黑马程序员_java多态
- 黑马程序员--多态
- 黑马程序员--多态
- 黑马程序员—多态
- 黑马程序员_多态
- Android SDK手动添加特定版本的API
- Hadoop 2.0稳定版本2.2.0新特性剖析
- Android学习笔记(四)——通过剪切板传递数据
- 2014-04-05 i2c设备驱动程序读写EEPROM(smbus协议)
- 基于模型的测试框架的想法 (四)
- 黑马程序员----多态
- 什么是osgi
- Linux常用命令-入门篇
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 第5周作业-字体设置——略修改成简单文字编辑器
- 开源OCR引擎Tesseract
- Ubuntu 13.04 安装 GCC4.8.1
- iOS Delegate 使用五步曲
- 用数组创建一个栈(stack),并利用栈来计算后缀表达式的值