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
原创粉丝点击