没有合适的资源?快使用搜索试试~ 我知道了~
1.多态 2.抽象类 3.接口
资源详情
资源评论
资源推荐
1.
多
态
1.1
多
态
的
概
述
(
记
忆
)
什么是多态
同一个对象,在不同时刻表现出来的不同形态
多态的前提
要有继承或实现关系
要有方法的重写
要有父类引用指向子类对象
1.2
多
态
中
的
成
员
访
问
特
点
(
记
忆
)
成员访问特点
成员变量
编译看父类,运行看父类
成员方法
编译看父类,运行看子类
代码演示
动物类
猫类
publicclassAnimal{
publicintage=40;
publicvoideat(){
System.out.println("动物吃东西");
}
}
publicclassCatextendsAnimal{
publicintage=20;
publicintweight=10;
@Override
publicvoideat(){
System.out.println("猫吃鱼");
}
publicvoidplayGame(){
System.out.println("猫捉迷藏");
}
}
测试类
1.3
多
态
的
好处
和
弊
端
(
记
忆
)
好处
提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
弊端
不能使用子类的特有成员
1.4
多
态
中
的
转
型
(
应
用
)
向上转型
父类引用指向子类对象就是向上转型
向下转型
格式:子类型 对象名 = (子类型)父类引用;
代码演示
动物类
猫类
publicclassAnimalDemo{
publicstaticvoidmain(String[]args){
//有父类引用指向子类对象
Animala=newCat();
System.out.println(a.age);
//System.out.println(a.weight);
a.eat();
//a.playGame();
}
}
publicclassAnimal{
publicvoideat(){
System.out.println("动物吃东西");
}
}
测试类
1.5
多
态
的
案
例
(
应
用
)
案例需求
请采用多态的思想实现猫和狗的案例,并在测试类中进行测试
代码实现
动物类
publicclassCatextendsAnimal{
@Override
publicvoideat(){
System.out.println("猫吃鱼");
}
publicvoidplayGame(){
System.out.println("猫捉迷藏");
}
}
publicclassAnimalDemo{
publicstaticvoidmain(String[]args){
//多态
//向上转型
Animala=newCat();
a.eat();
//a.playGame();
//向下转型
Catc=(Cat)a;
c.eat();
c.playGame();
}
}
猫类
狗类
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("动物吃东西");
}
}
publicclassCatextendsAnimal{
publicCat(){
}
publicCat(Stringname,intage){
super(name,age);
}
@Override
publicvoideat(){
System.out.println("猫吃鱼");
}
}
剩余17页未读,继续阅读
江水流春去
- 粉丝: 42
- 资源: 352
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0