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

多态是一个很实用,方便的一个工具,我们会感谢多态带给我们的方便


问问自己为什么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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值