学习java的第十一天


前言

每天坚持学习java
一点一点积累

一、多态

1.1多态介绍

在编程语言和类型论中,多态指为不同数据类型的实体提供统一的接口,多态类型可以将自身所支持的操作套用到其它类型的值上。

计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。

多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”。

多态可分为变量多态与函数多态。变量多态是指:基类型的变量(对于C++是引用或指针)可以被赋值基类型对象,也可以被赋值派生类型的对象。函数多态是指,相同的函数调用界面(函数名与实参表),传送给一个对象变量,可以有不同的行为,这视该对象变量所指向的对象类型而定。因此,变量多态是函数多态的基础。

1.2多态的作用

什么是多态:

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

多态的前提
要有继承或实现关系
要有方法的重写
要有父类引用指向子类对象

1.3多态的特点

成员访问特点

成员变量
编译看父类,运行看父类
成员方法
编译看父类,运行看子类
示例:

publicclassAnimal{
publicintage=40;
publicvoideat(){
System.out.println("动物吃东西");
}
}

1.4多态的好处和弊端

好处
提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
弊端
不能使用子类的特有成员

二、代码练习

猫类

publicclassCatextendsAnimal{
publicintage=20;
publicintweight=10;
@Override
publicvoideat(){
System.out.println("猫吃鱼");
}
publicvoidplayGame(){
System.out.println("猫捉迷藏");
}
}

狗类

publicclassDogextendsAnimal{
publicDog(){
}
publicDog(Stringname,intage){
super(name,age);
}
@Override
publicvoideat(){
System.out.println("狗吃骨头");
}
}

动物类

publicclassAnimal{
privateStringname;
privateintage;
publicAnimal(){
}
publicAnimal(Stringname,intage){
this.name=name;
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
publicvoideat(){
System.out.println("动物吃东西");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值