现在的位置: 首页 > 综合 > 正文

多态

2013年07月20日 ⁄ 综合 ⁄ 共 894字 ⁄ 字号 评论关闭

/*
    多态:
    面向对象的第三大特征。
 定义:某一类事物的多种存在形式。
 简单的说,就是一个对象对应着不同的类型。
 多态在代码中的体现:
     父类或者接口的引用指向其子类的对象。
 多态的好处:
 提高了代码的扩展性,前期定义的代码可以使用后期的内容。
 多态的弊端:
 前期定义的内容不能使用(调用)后期子类的特有内容。
 多态的前提:
     1,必须有关系:继承,实现
  2,要有覆盖。
 注意:对于转型,自始至终都是子类对象在做着类型的变化。

 instanceof:用于判断对象的具体类型。只能用于引用数据类型判断。

*/
public interface Animal
{
 public void eat();
}

public class Dog implements Animal
{
 public void eat(){
  syso("骨头");
 }
}
public class Cat implements Animal
{
 public void eat(){
  syso("鱼");
 }
}
class Test
{
 public static void main(String[] args){
  show(new Dog());
  show(new Cat());
 }

 public static void show(Animai a){
  a.eat();
 }
}

/*
多态时:
成员的特点:
1,成员变量:
   编译时:参考引用型变量所属的类中是否有调用的成员变量,有,就编译通过,没有,编译失败。
   运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行所属类中的成员变量。
   简单说:编译和运行都参考等号的左边。
2,成员函数(非静态)
   编译时:参考引用型变量所属的类中是否有调用的函数,如果有,编译通过,没有的话,编译失败
   运行时:参考的事对象所属的类中是否有调用的函数。
   简单的说:编译看左边,运行看右边。
3,静态函数:
   编译时:参考引用型变量所属的类中的是否有调用的静态方法。
   运行时:参考引用型变量所属的类中的是否有调用的静态方法。
   简单的说:编译和运行都看左边。
   其实对于静态方法,是不需要对象,直接使用类名调用。

*/

抱歉!评论已关闭.