Files
javaSE-260914/day10/src/com/inmind/poly08/Demo08.java
T

39 lines
1.5 KiB
Java

package com.inmind.poly08;
/*
多态的格式和使用
多态的前提:【重点】
继承或者实现【二选一】
方法的重写【意义体现:不重写,无意义】
父类引用指向子类对象【格式体现】
--------------------------------------------------
多态中成员变量和成员方法的访问特点
在多态中的成员变量的访问特点:
1.通过对象直接访问成员变量,对象创建时,=左边是谁,就优先使用谁的成员变量,如果没有向上找
2.通过对象调用成员方法,间接操作成员变量,方法属于谁,就优先使用谁的方法,如果没有向上找
编译看左边,运行看右边!!!!
*/
public class Demo08 {
public static void main(String[] args) {
//普通的面向对象的写法
Dog dog = new Dog();
Cat cat = new Cat();
//多态写法:父类引用指向子类对象
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.run();
animal2.run();
//访问animal2的属性
System.out.println(animal2.num);
System.out.println(animal2.numFu);
//System.out.println(animal2.numZi);//在多态中子类的属性无法访问
//访问animal2的行为
animal2.getNumFu();//编译看左边,运行看右边
//编译看左边,左边是Animal类,类中没有getNumZi,并且Animal的父类也没有getNumZi方法,所以编译不通过
//animal2.getNumZi();
animal2.run();
}
}