a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 117|回复: 0

[基础知识] JAVA面向对象编程课堂笔记7

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
多态:多态指的是编译时类型变化,而运行时类型不变。 6 i' X4 \3 k# X" h/ @  P
多态分两种:
! Y# a/ o, U! h  s" E5 B/ t①   编译时多态:编译时动态重载;
; t4 u" P2 n. k) d% g; e# Q* @②   运行时多态:指一个对象可以具有多个类型。
) S1 f: J, @; l  
# Q' C1 H& T) Y6 ~! ]( z% i1 V对象是客观的,人对对象的认识是主观的。
3 D+ F9 b# R' X1 }. t' q. _0 x例:
2 ~6 x7 T9 W) J& x9 w) D6 zAnimal a=new Dog();查看格式名称; 8 K" x2 b/ M- d7 W
Dog d=(Dog)a。声明父类来引用子类。   {! g  v* J/ F, D
(思考上面的格式) 9 n' G  H8 X; L- S( r
    V& C$ ~. @; [9 g
运行时多态的三原则:(应用时为覆盖) + Q. b- N, L# x5 P" T
1、对象不变;(改变的是主观认识) 6 O) X& w& j* A) v) K/ z
2、对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。 ; {  t' |) x5 _6 D
在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。
4 E6 c; U* T2 f2 V: \6 N4 \4 L! m注意:编译时类型一定要为运行时类型的父类(或者同类型)。 ( g5 }; l3 E7 K6 M7 W3 C6 _
对于语句:Dog d=(Dog)a。将d强制声明为a类型,此时d为Dog(),此时d就可以调用运行时类型。注意:a和d指向同一对象。 ( l1 I+ a/ h: Q2 ?+ J4 |
3、在程序的运行时,动态类型判定。运行时调用运行时类型,即它调用覆盖后的方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-8 05:21 , Processed in 0.330410 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表