黑马程序员-----java多态、instanceof总结*

原创 2013年12月02日 10:34:06

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


一、多态

格式:Animal a = new Cat();

经典例子:

class Animal{
	void method1(){
		System.out.println("FU 1");
	}
	
	void method2(){
		System.out.println("FU 2");
	}
}

class Cat extends Animal{
	void method1(int i){  //子类重载了父类method1方法
		System.out.println("Zi 1");
	}
	
	void method2(){   //子类重写了父类method2方法
		System.out.println("Zi 2");
	}
}

public class Demo{
	public static void main(String[] args){
        Animal a = new Cat();
        a.method1();
        a.method1(34);
        a.method2();
        }
}
以上程序:

1、父类引用指向子类对象

2、a.method1()会调用父类中的method1方法

3、因为父类中没有method1(int i)这个方法,所以a.method1(34)编译出错。

4、a.method2()会调用子类method2方法


总结:

1、父类引用指向子类对象

2、该引用只能够调用父类中定义的属性和变量

3、如果子类复写了父类中的某个方法,那么该引用调用的是子类中的该方法(动态连接、动态调用)


重点易错:

1、当该引用调用非静态方法时,编译能否通过看左边(该引用所属类中是否有这个方法),运行看右边(如果子类复写了该方法就运行子类)

2、多态中如果父类和子类出现了同名变量,那么编译和运行时都看左边,也就是都赋值给父类中的成员变量

3、调用静态方法时,一律写成类名.静态方法

4、对象引用调用方法时,都是先通过引用找到实际对象,然后由对象本身去调用该方法


结论:

静态方法和成员变量(不分静与非):都只看左边

非静态方法:                                        编译看左边,运行看右边


多态的好处与弊端:

好处:大大提高了程序的可拓展性

弊端:父类引用只能够掉调用父类中的属性和方法或子类中复写父类的方法,而不能够调用子类特有的方法



二、instanceof

格式:a instanceof B

a:是某个类实例的引用变量

B:是某个类的类名


什么时候用instanceof?

当一个类的子类类型很少时,例如性别只分男女,这样就可以用instanceof来进行判断



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例

JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 学习是不能停止的 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向...
  • qq_26787115
  • qq_26787115
  • 2016年05月28日 19:27
  • 7821

Java多态细节与instanceof关键字

多态无继承,无多态 多态作为OOP三大特性之一,在现实生活中,表现为一个对象可以有多种形态 OOP语言中也就是一个对象对应着不同类型,代码的直接体现在于父类或者接口的引用指向其子类的对象 好处 ...
  • u012768347
  • u012768347
  • 2016年04月05日 13:40
  • 971

Java:多态 之 向下转型+Instanceof关键字

Animal.java: package com.imooc.animal; public class Animal { private String name; private...
  • Zzwtyds
  • Zzwtyds
  • 2017年10月21日 20:04
  • 148

Java多态学习总结

一、多态产生的条件 存在继承关系; 存在方法重写; 要有父类引用指向子类对象。 示例代码:public class PolymorphismTest { public static void...
  • liuweiballack
  • liuweiballack
  • 2015年07月29日 00:17
  • 792

黑马程序员--一段给后者的面试总结

文章来源:黑马程序员, 北京之旅,行北京万事,通百姓生活。其实,我也是个农村出来的孩子,大学没毕业就来北京参加“黑马”,毕业之后,还是没有任何的机遇与机会让我能在那里一展雄威,这就是我们这些菜鸟的悲...
  • heima_hb6
  • heima_hb6
  • 2014年08月24日 13:51
  • 559

毕向东Java视频学习笔记【Day10 多态+内部类】

Java_Day10 多态+内部类   .01 .02 多态 猫 x = new 猫(); 动物 x = new 猫(); 一个对象对应着不同类型。 多态在代码中的体现:父类或者接口的引用指向了...
  • qq_24653023
  • qq_24653023
  • 2016年06月24日 21:17
  • 863

java多态学习总结

多态的存在
  • qq_34533413
  • qq_34533413
  • 2016年08月19日 18:13
  • 129

黑马程序员——Java多态总结

多态就是事物之间存在的多种体现形态,一种定义能有多种实现的方式,比如可以说经理是经理,也可以说经理是雇员,大致上属于包含与被包含的关系 一、多态的体现       父类的引用指向了自己的子类对象   ...
  • lizf2010
  • lizf2010
  • 2015年07月23日 18:25
  • 133

黑马程序员 知识点总结-Java多态

---------------------- ASP.Net+Android+IOS">http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发...
  • u013275973
  • u013275973
  • 2013年12月27日 19:28
  • 563

Java 多态中的类型转换(instanceof)

引用类型转换 1、向上类型转换(自动/隐式类型转换),是小类型转化成大类型,不存在认了风险。即子类型对象也是父类型。 2、向下类型转化(强制类型转化),大类型转化成小类型,存在一定风向。多态实例后...
  • qq_18505715
  • qq_18505715
  • 2017年05月22日 22:45
  • 1464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-----java多态、instanceof总结*
举报原因:
原因补充:

(最多只允许输入30个字)