黑马程序员_多态的应用总结

---------------------- android培训java培训、期待与您交流! ----------------------

多态的应用总结

多态:可以理解为事物存在的多种形态。

 人:男人  ,  女人

 动物:猫,狗

 猫 x = new 猫();

 动物 x = new 猫();

 1,多态的基本体现:

 父类的引用指向了自己的子类对象。

 父类的引用也也可以接收自己子类的对象。 

 2,多态的前提:

 必须是类与类之间有关系。要么继承,要么实现。

 通常还有一个前提就是:存在覆盖。

 

 3,多态的好处:

 多态的出现大大的提高了程序的扩展性。

 

 4,多态的弊端:

 提高了扩展性,但是只能使用父类的引用访问父类的成员。

 

 5,多态的应用:

* 千万不要出现这样的操作,将父类对象转成子类的类型。 我们能转换的是父类引用指向了自己的子类对象时, 该 引用可以被提升也可以被强制转换。

* 多态自始至终都是子类对象在做着变化。

  Animal a = new Animal(); Cat c = (Cat)a; //不对

6,多态的出现代码中的特点(多态使用的注意事项)

class Fu {

int num = 5;

void metod1() {

System.out.println("Fu method_1");

}

void metod2() {

System.out.println("Fu method_2");

}

static void method4() {

System.out.println("Fu method_4");

}

}

class Zi extends Fu {

int num = 8;

void metod1() {

System.out.println("Zi method_1");

}

void metod3() {

System.out.println("Zi method_3");

}

static void method4() {

System.out.println("Zi method_4");

}

}

public class DuoTaiDemo4 {

public static void main(String[] args) {

// Zi z = new Zi();

// z.metod1();//Zi method_1

// z.metod2();//Fu method_2

// z.metod3();//Zi method_3

Fu f = new Zi();

// System.out.println(f.num);// 5

 Zi z = new Zi();

// System.out.println(z.num);// 8

// f.metod1();//Zi method_1 子类把父类的method)_1覆盖了。

// f.metod2();//Fu method_2

// f.metod3();//编译失败。

f.method4();// Fu method_4 开发不用,不覆盖静态。

z.method4();//Zi method_4

Fu.method4();

Zi.method4();

* 在多态中成员函数的特点(非静态): 在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编 译通过。如果没有,编译失败。

* 在运行时期:参阅对象所属的类中是否有调用的方法。 简单总结就是:成员函数在多态 调用时,编译看左边, 运行看右边。

* 面试的时候用:

1,在多态中,成员变量的特点: 无论编译还是运行,都参考左边(引用型变量所属的类)。

2,在多态中,静态成员函数的特点: 无论编译和运行,都参考左边。

 * 第二个问题:如何去使用子类特有的方法。

   如果想要调用猫的特有方法时,如何操作?

   强制将父类的引用,转成子类类型。

   Cat c = (Cat)a;

* 关于Object类:

 Object:是所有对象的直接或者间接父类,就是传说中的上帝。

 该类中定义是肯定是所有对象都具有的功能。

 Object类中已经提供了对对象是否相同的比较方法。

 如果自定义类中也有比较相同的功能,没有必要重新定义。

 只要沿袭父类中的功能,建立自己特有比较内容即可。这就是覆盖。

 

 

---------------------- android培训java培训、期待与您交流! ----------------------

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值