2016/2/13 Head First Java 第7节第二小结 多态
来源:互联网 发布:win8网络连接在哪里 编辑:程序博客网 时间:2024/05/18 03:14
多态是一个很实用,方便的一个工具,我们会感谢多态带给我们的方便
问问自己为什么Java用到多态,多态会带来什么好处?
首先它可以通过声明为父型类型的对象引用来引用它的子型对象
其次它会编写出真正具有适应性的程序代码。程序会变得更简洁、更有效率、更简单。使得程序不但容易开发而且也更容易扩展
运用多态时,引用类型可以是实际对象类型的父亲
public class Practice { // 带有public class的文件只能有一个且必须与文件名一致public static void main(String[] args) {// TODO 自动生成的方法存根// 引用类型Father father = new Son(); // 有点差辈father.getAge();}}class Father{int age = 38;public void getAge(){System.out.println("Father :" + age);}}class Son extends Father{// 这个就是在子类中 对 父类的方法进行覆盖public void getAge(){System.out.println("Son : " + age);}}
参数和返回类型也可以多态!
class Vet{public void giveShot(Animal a){a.makeNoise();}}class PetPwner{public void start(){Vet v = new Vet();Dog d = new Dog();v.giveShot(d);}}
方法覆盖的规则:
1.参数必须压一样,且返回类型必须要兼容
2.不能降低方法的存取权限(例如不可以把public修饰的方法改成private修饰的方法)
方法的重载:
1.返回类型可以不同
2.不能只改变返回类型:重载的条件是要使用不同的参数,此时返回类型可以自由地定义
3.可以更改存取权限
public class OverLoads{String uniqueID;public int addNums(int a, int b){return a + b;}public double addNums(double a, double b){return a + b;}public void setUniqueID(String theID){uniqueID = theID;}public void setUniqueID(int ssNumber){String numString = " " + ssNumber;setUniqueID(numString);}}
在后面的一些章节里,都可能会涉及到多态的知识,我们会在后面进行补充
0 0
- 2016/2/13 Head First Java 第7节第二小结 多态
- 2016/2/13 Head First Java 第7节第一部分小结 继承
- 2016/2/3 Head First Java 第五节/第六节小结
- 2016/1/31 Head First Java 第三、四节 小结
- 2016/01/28 Head First Java 第二节
- Head First Java第二章
- 2016/01/27 Head First Java 第一节小结
- 记录-Head first java-第7-8章
- Head First Java第2章练习泳池迷宫
- Head First JAVA 拾忆-2
- <Head First Java>学习笔记--第二章:类与对象
- JAVA Head First 第二章 类与对象
- Head First SQL 第二章
- Head First Java第2章猜数字游戏代码修改
- Java Head First 第8章 接口与抽象类
- head first java 笔记 chapter 4~7
- Head First Java 2--bullet points
- 《Head First Java》笔记(2)
- 导入c文件报错
- zoj1409 Communication System (贪心+枚举)
- OpenGL3--1--概述
- JPA
- IOS 事件传递说明
- 2016/2/13 Head First Java 第7节第二小结 多态
- 2016年计划
- ubuntu 安装 apktool
- 顺时针打印矩阵
- jsp页面更改编码为utf-8
- 匈牙利算法模板
- 智慧北京(1)——闪屏与引导界面
- Java基础笔记汇总
- C语言 gets()和scanf()函数的区别