Java 多态的见解

  1. Java有三大特点,封装、继承、多态。今天我就来说一下我对多态的见解吧。
  2. 生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也
    是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。
    3.多态有三个前提;
    (1) 继承或者实现【二选一】
    (2)方法的重写【意义体现:不重写,无意义】
    (3) 父类引用指向子类对象【格式体现】
    一、下面我们写一个抽象父类
public  abstract  class Animal  {
public  abstract  void eat();
}

再写两个子类继承它

class  Cat  extends Animal  {
public  void  eat() {
System.out.println("吃鱼");
}
}
class  Dog  extends Animal  {
public  void  eat() {
System.out.println("吃骨头");
}
}

定义一个测试类

public  class  Test {
public  static  void main(String[]  args)  {
//  多态形式,创建对象
Animal  a1  = new  Cat();
//  调用的是  Cat 的  eat
a1.eat();
//  多态形式,创建对象
Animal  a2  = new  Dog();
//  调用的是  Dog 的  eat
a2.eat();
}
}

我们可以看出,子类继承了父类,子类重写了父类的方法。
子类在调用方法的时候使用的是子类重写后的方法。
Animal a1 = new Cat();
是多态形式的创建对象。
4.父类传递形式参数,子类进行方法的调用,更能体现出多态的扩展
性与便利。
代码如下:

定义父类:

class  Cat  extends Animal  {
public  void  eat() {
System.out.println("吃鱼");
}
}

定义子类

class  Dog  extends Animal  {
public  void  eat() {
System.out.println("吃骨头");
}
}

定义测试类:

public  class  Test {
public  static  void main(String[]  args)  {
//  多态形式,创建对象
Dog  d  = new  Dog();
//  调用showCatEat
showCatEat(c);
//  调用showDogEat
Cat  c  = new  Cat();
public  abstract  class Animal  {
showDogEat(d);
/*
以上两个方法,  均可以被showAnimalEat(Animal  a)方法所替代
而执行效果一致
*/
showAnimalEat(c);
showAnimalEat(d);
}
public  static  void showCatEat  (Cat  c){
c.eat();
}
public  static  void showDogEat  (Dog  d){
d.eat();
}
public  static  void showAnimalEat  (Animal  a){
a.eat();
}
}

多态的好处,体现在,可以使程序编写的更简单,并有良好的扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值