1 多态的定义: 就是一种事物的多种形态
2 多态的前提:
2.1 有类的封装
2.2 有类与类之间,继承关系的存在,
2.3 父类引用指向子类对象。
3 练习 代码实现多态关系。
创建 一个Animal 动物类
再创建一个 Cat 类。继承于 Animal 类。
猫类和动物类,都实现吃饭的方法。
在测试类中,创建 Cat 类的对象。
但是要父类引用,指向子类对象的方式。
调用cat 类的方法。
public class Animal {
public String name = "神秘动物";
public int age;
public static void sleep(){
System.out.println("动物会睡觉!");
}
public void eat(){
System.out.println("动物会吃东西!");
}
}
//猫类继承于动物类
public class Cat extends Animal {
public String name = "小花猫";
public int age;
public static void sleep(){
System.out.println("猫会睡觉!");
}
public void eat(){
System.out.println("猫喜欢吃鱼!");
}
}
public class Test1 {
public static void main(String[] args) {
Cat c = new Cat(); // 猫是一只 猫
System.out.println(c.name);
c.eat();
c.sleep();
//父类引用创建子类对象的方式,创建对象,称之为多态。
Animal a = new Cat(); //把猫添加到动物引用。 猫是一只动物
System.out.println(a.name);
a.eat();
a.sleep();
}
}
4 多态关系中,成员访问的特点。
成员变量: 编译看左边,运行看左边 跟着父类走
成员方法: 编译看左边,运行看右边 跟着子类走
静态方法: 编译看左边,运行看左边 跟着父类走
5 利用多态的特点,实现方法的重写。
5.1 当我们想使用父类的 属性的时候, 可以用多态,或创建父类对象。
5.2当我们想使用父类里面的静态方法的时候, 可以使用多态,或创建父类对象
5.3当我们想使用子类中重写的方法的时候, 可以用多态,或创建本类对象。
5.4当我们既向用父类的属性,和静态方法 ,又想使用自己特有的方法的时候 可以多态的形式创建对象——> 父类引用指向子类对象。