Java面向对象基础程序设计

 

第三章  继承与多态

3.3 重载和重写

3.3.1 重载

方法的重载,是指一个类中的多个方法可以具有相同的方法名,但这些方法的参数必须不相同,在执行可以根据其参数个数与类型来判断要调用此方法是哪一种操作。这些同名方法可按程序自行定义。

使用方法重载时,需要注意以下几点:

(1)同一个类中方法名相同,参数列表不同。

(2)返回值类型不能用于区分方法的重载。

示例 3.4

public class Book {
//定义三个同名方法
	
	public float getPrice() {
		return 100;
	}
	
	public float getPrice(int page) {
		//根据图书页数计算该价格
		return (float)(page*0.1);
	}
	public float getPrice(int page,float discount) {
		return (float) (page*discount);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Book book=new Book();//创建Book对象
System.out.println("默认图书价格:"+book.getPrice()+"元");
System.out.println("根据页数计算图书价格:"+book.getPrice(268)+"元");
System.out.println("根据页数和折扣计算图书价格:"+book.getPrice(360,0.02f)+"元");
	}

}

3.3.2  重写

子类扩展了父类,子类是一个特殊的父类。子类以父类为基础,额外增加新的属性和方法。

但有一种情况除外:子类需要重写父类的方法。例如,鸟类都包含的飞翔方法,其中鸵鸟是一种特殊的鸟类,因此鸵鸟是鸟的子类,因此它也将从鸟类获得飞翔方法,但飞翔方法明显不适合鸵鸟。所以鸵鸟需要重写鸟类的方法。方法重写具体见示例 3.5

示例   3.5

//创建父类Bird
public class Bird{
//Bird 类的fly()方法
public void fly(){
System.out.println("我在蓝天白云间自由的飞翔.....");
}
}

(2)创建子类Ostrich

package com.java.oriented.dota.scane;

public class Ostrich  extends Bird {
public void fly() {
	System.out.println("我只能在陆地上拍拍翅膀奔跑...");
}
//捕食方法
public void prey() {
	//在捕食中调用fly()方法
	fly();
	System.out.println("执行捕食方法");
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//创建Ostrich对象
		Ostrich ostrich=new Ostrich();
		ostrich.prey();//调用ostrich对象的prey()方法
	}

}

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值