JavaÖеÄinstanceof¹Ø¼ü×Ö
instanceofÊÇJavaµÄÒ»¸ö¶þÔª²Ù×÷·û£¬ºÍ==£¬>£¬<ÊÇͬһÀà¶«¶«¡£ÓÉÓÚËüÊÇÓÉ×Öĸ×é³ÉµÄ£¬ËùÒÔÒ²ÊÇJavaµÄ±£Áô¹Ø¼ü×Ö¡£ËüµÄ×÷ÓÃÊDzâÊÔËü×ó±ßµÄ¶ÔÏóÊÇ·ñÊÇËüÓұߵÄÀàµÄʵÀý£¬·µ»ØbooleanÀàÐ͵ÄÊý¾Ý¡£¾Ù¸öÀý×Ó£º
¡¡¡¡String s = "I AM an Object!";
¡¡¡¡boolean isObject = s instanceof Object;
¡¡¡¡ÎÒÃÇÉùÃ÷ÁËÒ»¸öString¶ÔÏóÒýÓã¬Ö¸ÏòÒ»¸öString¶ÔÏó£¬È»ºóÓÃinstancofÀ´²âÊÔËüËùÖ¸ÏòµÄ¶ÔÏóÊÇ·ñÊÇObjectÀàµÄÒ»¸öʵÀý£¬ÏÔÈ»£¬ÕâÊÇÕæµÄ£¬ËùÒÔ·µ»Øtrue£¬Ò²¾ÍÊÇisObjectµÄֵΪTrue¡£
¡¡¡¡instanceofÓÐһЩÓô¦¡£±ÈÈçÎÒÃÇдÁËÒ»¸ö´¦ÀíÕ˵¥µÄϵͳ£¬ÆäÖÐÓÐÕâÑùÈý¸öÀࣺ
¡¡¡¡public class Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡public class PhoneBill extends Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡public class GasBill extends Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡ÔÚ´¦Àí³ÌÐòÀïÓÐÒ»¸ö·½·¨£¬½ÓÊÜÒ»¸öBillÀàÐ͵ĶÔÏ󣬼ÆËã½ð¶î¡£¼ÙÉèÁ½ÖÖÕ˵¥¼ÆËã·½·¨²»Í¬£¬¶ø´«ÈëµÄBill¶ÔÏó¿ÉÄÜÊÇÁ½ÖÖÖеÄÈκÎÒ»ÖÖ£¬ËùÒÔÒªÓÃinstanceofÀ´Åжϣº
¡¡¡¡public double calculate(Bill bill) {
¡¡¡¡if (bill instanceof PhoneBill) {
¡¡¡¡//¼ÆËãµç»°Õ˵¥
¡¡¡¡}
¡¡¡¡if (bill instanceof GasBill) {
¡¡¡¡//¼ÆËãÈ¼ÆøÕ˵¥
¡¡¡¡}
¡¡¡¡...
¡¡¡¡}
¡¡¡¡ÕâÑù¾Í¿ÉÒÔÓÃÒ»¸ö·½·¨´¦ÀíÁ½ÖÖ×ÓÀà¡£
¡¡¡¡È»¶ø£¬ÕâÖÖ×ö·¨Í¨³£±»ÈÏΪÊÇûÓкúÃÀûÓÃÃæÏò¶ÔÏóÖеĶà̬ÐÔ¡£ÆäʵÉÏÃæµÄ¹¦ÄÜÒªÇóÓ÷½·¨ÖØÔØÍêÈ«¿ÉÒÔʵÏÖ£¬ÕâÊÇÃæÏò¶ÔÏó±ä³ÉÓ¦ÓеÄ×ö·¨£¬±ÜÃâ»Øµ½½á¹¹»¯±à³Ìģʽ¡£Ö»ÒªÌṩÁ½¸öÃû×ֺͷµ»ØÖµ¶¼Ïàͬ£¬½ÓÊܲÎÊýÀàÐͲ»Í¬µÄ·½·¨¾Í¿ÉÒÔÁË£º
¡¡¡¡public double calculate(PhoneBill bill) {
¡¡¡¡//¼ÆËãµç»°Õ˵¥
¡¡¡¡}
¡¡¡¡public double calculate(GasBill bill) {
¡¡¡¡//¼ÆËãÈ¼ÆøÕ˵¥
¡¡¡¡}
¡¡¡¡ËùÒÔ£¬Ê¹ÓÃinstanceofÔÚ¾ø´ó¶àÊýÇé¿öϲ¢²»ÊÇÍÆ¼öµÄ×ö·¨£¬Ó¦µ±ºÃºÃÀûÓöà̬¡£
Ïà¹ØÎĵµ£º
ÏÖÔÚ£¬Ì¸ÔƼÆËãµÄ¿É¶àÁË£¬²»¹ý£¬Ò»°ã±È½Ï¹Ø×¢µÄÊÇGoogleºÍAmazonµÄÔÆ·þÎñ¡£´Ó´ó·¶Î§À´¿´£¬Ò²Ö»ÓÐÕâÁ½¼Ò»ñµÃÁ˹«Öڵĸü¶à¹Ø×¢¡£±ÈÈ磬ÎÒ¸öÈ˺ܸÐÐËȤµÄ£¬¾ÍÊÇGoogleµÄApp EngineʹÓû§Äܹ»ÔÚGoogle»ù´¡ÉèÊ©ÉϹ¹½¨ºÍÍÐ¹Ü Web Ó¦ÓóÌÐò¡£ÖÁÓÚAmazon£¬ËüµÄAmazonWeb Services»¹°üÀ¨Elastic Clou ......
²åÈëÅÅÐòµÄ¹¤×÷ÔÀíÊÇͨ¹ý¹¹½¨ÓÐÐòÐòÁУ¬¶ÔÓÚδÅÅÐòÊý¾Ý£¬ÔÚÒÑÅÅÐòÐòÁÐÖдӺóÏòǰɨÃ裬ÕÒµ½ÏàӦλÖò¢²åÈë¡£Æä¾ßÌå²½Öè²Î¼û´úÂë¼°×¢ÊÍ¡£
view plaincopy to clipboardprint?
/**
* ²åÈëÅÅÐò<br/>
* <ul>
* <li>´ÓµÚÒ»¸öÔªËØ¿ªÊ¼£¬¸ÃÔªËØ¿ÉÒÔÈÏΪÒѾ±»ÅÅÐò ......
ÏÂÒÔjavaΪÀý×Ó˵Ã÷һЩ×Ô¼ºÓöµ½µÄ£º
·ÃÎÊ¿ØÖÆ:
private ˽ÓеÄ
protected Êܱ£»¤µÄ
public ¹«¹²µÄ
Àà¡¢·½·¨ºÍ±äÁ¿ÐÞÊηû
abstract ÉùÃ÷³éÏó
class Àà
extends À©ÔÊ,¼Ì³Ð
final ÖÕ¼«,²»¿É¸Ä±äµÄ
implementsʵÏÖ
interface ½Ó¿Ú
native ±¾µØ
new ÐÂ,´´½¨
static ¾²Ì¬
strictfp Ñϸñ,¾«×¼
synchr ......
ËùÓеijÌÐò¿ª·¢Êֲᶼ°üº¬Á˸÷ÖÖ¹æÔò¡£Ò»Ð©Ï°¹ß×ÔÓɳÌÐòÈËÔ±¿ÉÄܶÔÕâЩ¹æÔòºÜ²»ÊÊÓ¦£¬µ«ÊÇÔÚ¶à¸ö¿ª·¢ÈËÔ±¹²Í¬Ð´×÷µÄÇé¿öÏ£¬ÕâЩ¹æÔòÊDZØÐèµÄ¡£Õâ²»½ö½ö
ÊÇΪÁË¿ª·¢Ð§ÂÊÀ´¿¼ÂÇ£¬¶øÇÒÒ²ÊÇΪÁ˺óÆÚά»¤¿¼ÂÇ¡£
ÃüÃû¹æ·¶
¶¨ÒåÕâ¸ö¹æ·¶µÄÄ¿µÄÊÇÈÃÏîÄ¿ÖÐËùÓеÄÎĵµ¶¼¿´ÆðÀ´ÏñÒ»¸öÈËдµÄ£¬Ôö¼Ó¿É¶ÁÐÔ£¬¼õÉÙÏîÄ¿×éÖ ......