[修饰符] class 子类名 extends 父类名 {
类体
}
例1:
public class Bird{//父类 String color="white"; String skin="羽毛"; } public class Pigeon extends Bird{//子类 public static void main(String[] args) { Pigeon pigeon=new Pigeon();//建立类的对象 System.out.println(pigeon.color);//输出对象属性color } }
例2
import java.util.Date; public class Employee { private String name;//定义成员变量 private double salary; private Date birthday; public String getName() {//获取成员变量 return name; } public void setName(String name) {//设置成员变量 this.name=name; } public double getSalary() { return salary; } public void setSalary(double salary){ this.salary=salary; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday=birthday; } }
public class Manager extends Employee {//继承,简化代码 private double bonus;//定义变量,奖金 public double getBonus() {//获取成员变量 return bonus; } public void setBonus(double bonus) {//设置成员变量 this.bonus=bonus; } }
import java.util.Date; public class Test { public static void main(String[] args) { Employee e=new Employee();//创建Employee对象,并赋值 e.setName("Java");//赋值成员变量 e.setSalary(2000); e.setBirthday(new Date()); Manager m=new Manager();//创建Manager对象,并赋值 m.setName("阿伟");//调用父类方法 m.setSalary(5000); m.setBirthday(new Date()); m.setBonus(2000); //输出经理和员工属性值 System.out.println("员工的姓名、工资、生日:"+" "+e.getName()+" "+e.getSalary()+" "+e.getBirthday()); System.out.println("经理的姓名、工资、生日:"+" "+m.getName()+" "+m.getSalary()+" "+m.getBirthday()); System.out.println("经理的奖金:"+m.getBonus()); } }
继承中的重写
子类中的方法名与父类中的相同时,不继承父类方法,执行子类方法。重写也称为覆盖。
例:父类Animal,子类Cat、Dog、Sheep,执行文件Zoo
Dog类和Cat类都重写了父类的方法cry( ),执行子类方法。但Sheep类没有重写父类方法,所以执行父类方法。
public class Animal { public void cry() { System.out.println("动物的叫声"); } } public class Dog extends Animal{ public void cry() { System.out.println("狗的叫声“汪汪……”"); } } public class Cat extends Animal{ public void cry() { System.out.println("猫的叫声“喵喵……”"); } } public class Sheep extends Animal{ } public class Zoo { public static void main(String[] args) { Dog dog=new Dog();//建立对象 Cat cat=new Cat();//建立对象 Sheep sheep=new Sheep();//建立对象 dog.cry(); cat.cry(); sheep.cry(); } }