什么是多态,多态的实现

目录

1.多态的概念

1.1概念

2.多态的好处

3.多态的实现思路

4.多态的实现方式

4.1向上转型对象与向下转型对象

4.2接口实现多态


1.多态的概念

1.1概念

多态是面向对象三大特征之一,多态通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。

2.多态的好处

  1. 实现代码的复用,避免代码的冗余;
  2.  减少代码之间的关联性,即耦合度,方便后期对代码的修改,功能的改善,不必牵一发而动全身,减少不必要的麻烦;
  3. 能够通过重写子类的方法,使不同的对像具有不同的功能,扩展了功能。

3.多态的实现思路

  1. 编写具有继承关系的父类和子类
  2. 子类重写父类方法
  3. 使用父类的引用指向子类的对象

4.多态的实现方式

4.1向上转型对象与向下转型对象

 向上转型对象:子类创建的对象赋值给父类声明变量,则该对象称为上转型对象,这个过程称为对象上转型,对应于数据类型转换中的自动类型转换;

格式
<父类型><引用变量名> = new <子类型>();
注:
此时通过父类引用变量调用的方法是子类覆盖或集成父类的方法,不是父类的方法
此时通过父类引用变量无法调用子类特有的方法

向下转型对象:上转型对象再强制转换为创建该对象的子类类型的对象,即将上转型对象还原为子类对象,对应于数据类型转换中的强制类型转换。 

格式
<子类型><引用变量> = (<子类型>)<父类型的引用变量>;
注:
在向下转型的过程中,如果没有转换为真是子类类型,会出现类型转换异常

注意:

  1. 向上转型对象才能够对象下转型;
  2. 上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法,因此如果要使用子类新增的属性必须下转型
public class Test {
	 public static void main(String[] args) {
		 Animal animal = new Dog();//下转型对象
		 Dog dog = (Dog) animal;//下转型对象,还原为动物类类
	}	
}

代码实现:

//动物类(父类)
public class Animal {
    public void move(){
    	System.out.println("移动");  
     }
}
//狗类(继承动物类)
public class Dog extends Animal{
    public void move(){
    	System.out.println("狗在动");  
	}
}
//测试类
public class Test {
	 public static void main(String[] args) {
	    Animal animal = new Dog();//上转型对象,父类类型的变量指向子类声明的对象
        animal.move();
        //向下转型
        Dog dog = (Dog) animal;//下转型对象,还原为动物类类
        dog.move()
	}	
}

4.2接口实现多态

1.定义父类接口

public interface Animal{
    public void move();
}

2.实现父类接口

//狗
public class Dog implements Animal {
 
    public void move() {
        System.out.println("狗在跑"); 
    }
}
//猫
public class Cat implements Animal {
 
    public void move() {
        System.out.println("猫在跑"); 
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值