您的位置:首页 > 编程语言 > Java开发

2016/2/13 Head First Java 第7节第二小结 多态

2016-02-13 16:09 483 查看
多态是一个很实用,方便的一个工具,我们会感谢多态带给我们的方便

问问自己为什么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);
}
}


在后面的一些章节里,都可能会涉及到多态的知识,我们会在后面进行补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: