标签:不同 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.不同包下的 默认修饰符修饰的内容
标签:不同 ret 构造方法 strong gets eth love ati sys
原文地址:https://www.cnblogs.com/meilishi/p/12895973.html