继承
类和类之间的关系
在Java多有类都默认继承自Object
class chlid extends Parent extends 关键字实践类的继承
使用继承
编写父类
[访问修饰符] class Pet{ //公共的属性和方法 }
编写子类,继承父类
[访问修饰符] class Dog extends Pet { //子类特有的属性和方法 }
单根性
一个类只能存在一个父类
在Java中的继承
子类可以继承父类的任何非私有成员(变量 方法 构造) 子类永远比父类拥有更多的成员 子>父
继承的作用
提升代码的复用性
减少代码冗余
Object
任意类都有直接或间接继承
子类访问父类成员
注意:(1)使用super关键字,super代表父类对象
(2)在子类构造方法中调用且必须是第一句
(3)不可以访问父类中定义为private的属性和方法
package extendAnimal; /** * 狗狗类,宠物的子类 */ public class Dog extends Pet { private String strain="牧羊犬";// 品种 //无参构造方法 public Dog() { } public String getStrain() { return strain; } public void setStrain(String strain) { this.strain = strain; } }
package extendAnimal; /** * 企鹅类,宠物的子类 */ public class Penguin extends Pet { private String sex="Q仔";// 性别 //无参构造方法 public Penguin() { } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
package extendAnimal; /** * 宠物类,狗狗和企鹅的父类 */ public class Pet { private String name = "无名氏";// 昵称 private int health = 100;// 健康值 private int love = 20;// 亲密度 /** * 无参构造方法 */ public Pet() { } /** * 有参构造方法 * @param name 昵称 */ public Pet(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getHealth() { return health; } public void setHealth(int health) { if(health<0||health>100){ System.out.println("健康值应该在0至100之间,默认值为60。"); this.health=60; return; } this.health = health; } public int getLove() { return love; } public void setLove(int love) { if(love<0||love>100){ System.out.println("亲密度应该在0至100之间,默认值为10。"); this.love=10; return; } this.love = love; } /** * 输出宠物信息 */ public void print() { System.out.println("宠物的自白:\n我的名字叫" + this.name + ",我的健康值是" + this.health + ",我和主人的亲密程度是" + this.love + "。"); } }
package extendAnimal; //测试类 public class Test { public static void main(String[] args) { // 1、创建宠物对象pet并输出信息 Pet pet = new Pet("贝贝"); pet.print(); // 2、创建狗狗对象dog并输出信息 Dog dog = new Dog(); dog.setName("多多"); dog.setHealth(90); dog.setLove(80); dog.setStrain("吉娃娃"); dog.print(); // 3、创建企鹅对象pgn并输出信息 Penguin pgn = new Penguin(); pgn.setName("大黑"); pgn.setHealth(98); pgn.setLove(99); pgn.setSex("Q妹"); pgn.print(); } }