java的多态 父类应用指向子类对象
格式
父类名称 对象名称 = new 子类名称
访问成员变量的两种方式
1.直接通过对象名称访问
2…通过成分方法间接访问
成员变量与成员方法的对比
成员变量 编译看左边 运行看左边
成员方法 编译看左边 运行看右边
final
用来修饰一个类
用来修饰一个方法
用来修饰一个局部变量
用来修饰一个成员方法
public class Animal {
public void eat ( ){
System.out.println(“动物吃东西”);
}
}
public class Cat extendsAnimal{
public Cat( ){
}
public Cat(String name,int age){
super(name,age);
}
@Override
public void eat ( ){
System.out.println(“猫吃鱼”);
}
}
public class Dog extends Animal{
public Dog(){
}
public Dog(Stringname,int age){
super(name,age);
}
@Override
public voideat(){
System.out.println(“狗吃骨头”);
}
}
public class Demo03Main {
public static void main(String[] args) {
Animal animal=new Cat();
animal.eat();
Cat cat = (Cat) animal;
cat.catchMouse();
}
}
public class Demo03lnstancof {
public static void main(String[] args) {
Animal animal=new Dog();
animal.eat();
giveMeAPet(animal);
}
public static void giveMeAPet(Animal animal)
{
if(animal instanceof Dog)
{
Dog dog=(Dog)animal;
dog.watchHouse();
}
if(animal instanceof Cat)
{
Cat cat=(Cat)animal;
cat.catchMouse();
}
}
}