??Animal?animal=new?Dog();//向上转型,把子类对象赋值给父类
Dog dog=(Dog)animal;//向下转型,将之前的animal强转为子类,就可以访问子类自己定义的方法了
package com.class_decoration;
public class test {
public static void main(String[] args) {
Animal animal=new Dog();//向上转型,把子类对象赋值给父类
Dog dog=(Dog)animal;//向下转型,将之前的animal强转为子类,就可以访问子类自己定义的方法了
dog.eat();
dog.kanjia();
}
}
class Control {
public void control(Animal animal)//这里可以直接写他们的父类,传过来的是实参,相当于,Animal animal=new Dog/cat();
{//如果不写父类,则要写两个方法,一个接收dag类型,一个接收cat类型
animal.eat();
}
}
class Animal {
public void eat(){
System.out.println("animal吃东西");
}
}
class Dog extends Animal{
@Override
public void eat()
{
System.out.println("dog吃骨头");
}
public void kanjia()
{
System.out.println("dog在看家");
}
}
class Cat extends Animal {
@Override
public void eat(){
System.out.println("小猫吃鱼");
}
}
|