您的位置:首页 > 编程语言 > Java开发

java 的多态 及向上向下转型

2017-12-10 21:27 351 查看
一、多态: 一种事物的多种形态

多态的规则(前提):

1.类与类之间要建立关系 建立继承关系

2.必须要有方法的重写

3.父类的指针(引用)指向 子类的对象(空间)

例:

创建 动物类 猫类 狗类
*  都有一个吃的方法 动物类 动物吃饭
*                     猫    吃鱼
*                     狗    吃骨头
*
*/
public class Demo01 {
// 本类的引用(指针)指向 本类对象(空间)
// 猫是一只猫
public static void main(String[] args) {
Cat c = new Cat();
c.eat();

// 猫是一只动物(不能是 动物是一只猫)
// 父类的引用(指针)指向 子类的对象(空间)
Animal a = new Cat();
a.eat();

}
}

class Animal{
public void eat() {
System.out.println("吃饭");
}
}
class Cat extends Animal{
public void eat() {
System.out.println("猫吃鱼");
}
}
class Dog extends Animal{
public void eat() {
System.out.println("狗吃骨头");
}
}


多态时 成员本类是如何调用的?

* 多态时 当父类引用调用成员变量时

* 编译 需要看父类中有没有这个成员变量 没有编译不会通过

* 运行 访问就是父类中的这个成员变量

* 多态时 父类访问成员变量时编译 和 运行(看父类)

二、 向上转型

向上转型就是把子类对象赋值给父类类型的变量。

例:使Parallelogram子类继承Quadrangle父类,然后在主方法中调用父类的draw()方法

class Quadrangle{   // 四边形类
public static void draw(Quadrangle q) {  // 四边形类中的方法
// SomeSentence
}
}
public class Parallelogram extends Quadrangle{//平行四边形类继承了四边形类
public static void main(String args[]) {
Parallelogram p = new Parallelogram();// 实例化平行四边形类对象引用
draw(p);// 调用父类方法
}
}




三、向下转型

子类对象总是父类的一个实例。

例:不能说四边形是平行四边形的一种,也不能说鸟是麻雀的一种… …
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: