2016/2/13 Head First Java 第7节第二小结 多态
2016-02-13 16:09
483 查看
多态是一个很实用,方便的一个工具,我们会感谢多态带给我们的方便
问问自己为什么Java用到多态,多态会带来什么好处?
首先它可以通过声明为父型类型的对象引用来引用它的子型对象
其次它会编写出真正具有适应性的程序代码。程序会变得更简洁、更有效率、更简单。使得程序不但容易开发而且也更容易扩展
运用多态时,引用类型可以是实际对象类型的父亲
参数和返回类型也可以多态!
方法覆盖的规则:
1.参数必须压一样,且返回类型必须要兼容
2.不能降低方法的存取权限(例如不可以把public修饰的方法改成private修饰的方法)
方法的重载:
1.返回类型可以不同
2.不能只改变返回类型:重载的条件是要使用不同的参数,此时返回类型可以自由地定义
3.可以更改存取权限
在后面的一些章节里,都可能会涉及到多态的知识,我们会在后面进行补充
问问自己为什么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); } }
在后面的一些章节里,都可能会涉及到多态的知识,我们会在后面进行补充
相关文章推荐
- Java程序设计的DOS命令基础
- java 泛型学习
- JAVA容器类
- java基础巩固笔记(4)-代理
- java基础巩固笔记(3)-类加载器
- Java基础笔记汇总
- Spring MVC之一 HelloWorld
- Java byte 数组转换 16 进制字符串
- 2016/2/13 Head First Java 第7节第一部分小结 继承
- Eclipse快捷键大全
- Spark学习笔记8-在eclipse里用Java编写spark程序
- double.class与Double.class
- struts2 工作原理(仅图片说明)
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- 奇葩问题 eclipse中DDMS的LOGcat只有一列level
- 查看Eclipse版本号,及各个版本区别
- 查看Eclipse版本号,及各个版本区别
- javaWeb笔记(六) 分页 显示分页页码列表
- java正则表达式提取xxxx(yyyy)中的内容
- Javaio