小白须知——java基础中多态的理解

来源:互联网 发布:港股直通车软件 编辑:程序博客网 时间:2024/06/15 01:52

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

1,多态的体现

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

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

2,多态的前提

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

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

 

3,多态的好处

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

 

4,多态的弊端:

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

 

5在多态中成员函数的特点:

在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

在运行时期:参阅对象所属的类中是否有调用的方法。

简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

 

 

在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类)

 

 

在多态中,静态成员函数的特点:

无论编译和运行,都参考做左边。

public class DuoTaiDemo {

public static void main(String[] args){

BaseStudent2 b2 =new BaseStudent2();

doStudent2.doSome(b2);

b2.study();

b2.sleep();

AdvStudent2 a2 =new AdvStudent2();

doStudent2.doSome(a2);

    a2.study();

a2.sleep();

}

}

class doStudent2{

public static void doSome(Student2 s){

s.study();

s.sleep();

}

}

abstract class Student2{

abstract void study();

abstract void sleep();

}

class BaseStudent2 extends Student2{

 

void study() {

System.out.println("学一分钟,玩十分钟");

}

 

void sleep() {

System.out.println("做着都能睡着了");

}

}

class AdvStudent2 extends Student2{

 

void study() {

System.out.println("学十分钟,玩一分钟");

}

 

void sleep() {

System.out.println("站着都能睡着了");

}

}

1 0