继承:
继承就是保持已有类的特性而构造新类的过程。继承后,子类能够利用父类中定义的变量和方法,就像它们属于子类本身一样。
单继承:在类层次中,子类只继承一个父类的数据结构和方法,一个类只有一个父类
多继承:在类层次中,子类继承了多个父类的数据结构和方法,一个类允许有多个继承
示例
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.5
示例
//创建父类Bird
public class Bird{
//Bird 类的fly()方法
public void fly(){
System.out.println("我在蓝天白云间自由的飞翔.....");
}
}
创建子类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()方法
}
}