面向对象(1)之多态

1.多态

    a:要有继承关系。

    b:要有方法重写。

    c:要有父类引用指向子类对象。

2.多态的几种运行规则

a:成员变量:编译看左边 运行看左边:

Animal t = new One();

System.out.println(t.c);

编译看父类有没有空参方法,运行用父类空参方法

b:成员方法:编译看左边(父类),运行看右边(子类)。

Animal t = new One();

  t.print();

编译看父类有没有空参方法,运行用子类空参方法

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

类中方法被static修饰

图片1

3.多态中向上转型和向下转型

      Person p = new SuperMan();向上转型

      将SuperMan提升为Persone类

      SuperMan sm = (SuperMan)p;向下转型

必需先有向上转型再有向下转型调用子类特有的方法,将对象p强制转换为子类sm;

图片2

输出结果:谈几个亿的大生意

              飞出去救人

注意:a.创建对象时候只有类中有构造方法时才访问基本类的构造方法

                B.本案例多态体现:Animal a= new Cat();后再向下转型Cat c = (Cat)a;

4.多态的好处与缺点

优点:

* a:提高了代码的维护性(继承保证)

* b:提高了代码的扩展性(由多态保证)

缺点:

不能调用子类的特有属性和行为

360截图20161114003621194

360截图20161114003731246

5.好题分析

 

class Fu {
	public void show(){
		System.out.println("fu show");
	}

}
class Zi extends Fu{
	public void show(){
		System.out.println("zi show");
	}
	public void method(){
		System.out.println("zi method");
	}
}

public class TextDemo{
	public static void main(String[] args){
		Fu f = new Zi();
		f.method();
		f.show();
	}
}
 
posted @ 2016-11-14 00:10  小彭快跑  阅读(277)  评论(0编辑  收藏  举报