黑马程序员-----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多态总结

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

黑马程序员:Java基础总结----多态

黑马程序员:Java基础总结 多态  ASP.Net+Android+IO开发、.Net培训、期待与您交流! 多态: ...

黑马程序员—java面向对象总结(3)—面向对象继承、多态特性

------- android培训、java培训、期待与您交流! ---------- 四、继承(extends) 继承特点: 1、提高了代码的复用性; 2、让类与类之间产生关系,有了这个关系,才有了...

黑马程序员《java基础总结(四)》(面向对象特点--多态)

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 多 态(面向对象特征之...

黑马程序员-自己总结的java学习笔记(5)继承,接口,多态。

黑马学习博客五号:接口继承与多态 1:类的继承 继承就是基于某个父类的扩展,制定出一个新的子类。子类可以继承父类原有的属性和方法,也可以增加原来父类所不具备的属性和方法,或者直接重写父类中...

黑马程序员_java的面向对象(对第八课多态..内部类..匿名内部类的总结)

------- android培训、java培训、期待与您交流! ---------- 通过今天对java语言面向对象的学习,我来给自己的学习内容做下简单直白的总结: 首先,我先来总结...

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

---------------------- ASP.Net+Android+IOS">http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发...

黑马程序员_Java继承、多态、接口零碎知识总结

继承、多态、接口零碎知识总结 Blog_13_1 继承 继承:多个类中存在相同的属性或者是行为时,将这些相同的属性或者行为抽取到单独的一个类中,那么这多个类就无需再定义这些属性或者行为,直接让多个...

黑马程序员__Java抽象类和多态总结

------- android培训、java培训、期待与您交流! ---------- 抽象类的总结  A. 抽象类的定义    抽象方法: 方法使用abstract修饰,没有方法体(大括...

黑马程序员——java中构造函数、继承、多态、接口总结

------Java培训、Android培训、期待与您交流! ------- 一、构造函数      1、概念和作用           构造函数是构建创造对象时调用的函数。构造函数可以给对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-----java多态、instanceof总结*
举报原因:
原因补充:

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