继承

继承

  类和类之间的关系

  在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();
    }
}

 

posted @ 2019-05-30 16:53  Y幽寒  阅读(130)  评论(0编辑  收藏  举报