Java---多态

体现多态存在的三个必要的条件:
(1)存在继承和实现关系
(2)方法重写操作(同样的方法执行不同的操作)
(3)在运行时父类的引用变量或者接口的引用变量可以引用子类的对象
如:Animal animal =new Dog();
典型代码如下:

public class AnimalDemo {

	/**
	 * 多态  by caiwencai  20190713
	 */
	public static void main(String[] args) {
		Animal animal=new Dog("哈士奇");//这个也叫向上转型
		//调用的是Animal中的eat()方法,然后再找Dog类(子类,这里是Dog类)有没有重写该方法,有就是调用Dog中的eat()方法
		animal.eat();
		Dog dog=new Dog("哈士奇");
		dog.eat();//调用子类的eat()方法
		
	}

}
//创建一个动物类
 class Animal{
	
	public String name;
	
	//构造方法初始化工作,初始化名字
	public Animal(String name){
		this.name=name;				
	}
	
	//声明一个吃的方法,让子类去实现相关的事情(一般该方法为抽象方法,但现在这里啥也不实现)
	public void eat(){
		
		
	}
}
 
 
 
//写一个Dog类继承与Animal,重写eat()方法
class Dog extends Animal{
    //声明构造方法,实现初始化工作
	public Dog(String name) {
		//调用父类的构造方法,一般创建子类对象时先先调用父类的构造方法再调用自己的构造方法
		//假如父类没有声明构造方法,也会先调用父类的默认的构造方法;
		super(name);
	}
	
public void eat(){
	System.out.println("吃骨头");
}
}



//写一个Cat类继承与Animal,重写eat()方法
class Cat extends Animal{
    //声明构造方法,实现初始化工作
	public Cat(String name) {
		//调用父类的构造方法,一般创建子类对象时先先调用父类的构造方法再调用自己的构造方法
		//假如父类没有声明构造方法,也会先调用父类的默认的构造方法;
		super(name);
	}
	
public void eat(){
	System.out.println("吃鱼");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值