码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA继承

时间:2020-05-15 17:54:28      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:不同   ret   构造方法   strong   gets   eth   love   ati   sys   

继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。

继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。

继承使用 extends 关键字。

继承的好处

子类拥有父类的所有属性和方法(除private)从而实现了实现代码的复用

语法

class 子类 extends 父类

例如:class Dog extends Pet{  }

子类 狗狗类

public class Dog extends Pet {
    private String strain;// 品种

    /**
     * 有参构造方法。
     * @param name   昵称
     * @param strain   品种
     */
    public Dog(String name, String strain) {
        super(name);
        this.strain = strain;
    }
    
    public void setStrain(String strain) {
        this.strain = strain;
    }
    public String getStrain() {
        return strain;
    }
}
子类 企鹅类

public class Penguin extends Pet {
    private String sex;// 性别
    /**
     * 有参构造方法。
     * @param name 昵称
     * @param sex 性别
     */
    public Penguin(String name, String sex) {
        super(name);
        this.sex = sex;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }    
}
宠物类,狗狗和企鹅的父类

public class Pet {
    private String name = "哈哈";// 昵称
    private int health = 100;// 健康值
    private int love =100;// 亲密度
    /**
     * 无参构造方法。
     */
    public Pet() {
        this.health = 95;
        System.out.println("执行宠物的无参构造方法。");
    }
    /**
     * 有参构造方法。
     * @param name  昵称
     */
    public Pet(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public int getHealth() {
        return health;
    }
    public int getLove() {
        return love;
    }
    /**
     * 输出宠物信息。
     */
    public void print() {
        System.out.println("宠物的自白:\n我的名字叫" + 
                this.name + ",我的健康值是" + this.health 
                + ",我和主人的亲密程度是" + this.love + "。");
    }
}
测试类
public class Test {
    public static void main(String[] args) {
        // 1、创建宠物对象pet并输出信息
        Pet pet = new Pet("贝贝");
        pet.print();
        // 2、创建狗狗对象dog并输出信息
        Dog dog = new Dog("欧欧", "雪娜瑞");
        dog.print();
        // 3、创建企鹅对象pgn并输出信息
        Penguin pgn = new Penguin("楠楠", "Q妹");
        pgn.print();
    }
}

 

super

可以调用父类中的属性,方法,构造方法,如果在构造方法中使用,必须在第一行

构造方法

 在子类中如果明确写了调用父类的某一个构造方法,则会执行被明确调用的构造方法,如果在子类构造方法中,没有写任何调用的构造方法,则会默认调用父类的无参构造方法

哪些是不能被继承的

     1.父类的构造方法

?     2.private  修饰的内容

     3.不同包下的  默认修饰符修饰的内容

 

 

JAVA继承

标签:不同   ret   构造方法   strong   gets   eth   love   ati   sys   

原文地址:https://www.cnblogs.com/meilishi/p/12895973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!