继承
1.继承是类与类的一种关系,是一种“is a”的关系
2.java中的继承是单继承,即一个类只有一个父类
继承的好处
子类拥有父类的所有属性和方法(除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(); }
}
哪些是不能被继承的
? 2.private 修饰的内容
如果在构造方法中使用,必须在第一行
构造方法中,没有写任何调用的构造方法,则会默认调用父类的无参构造方法
abstract
表示抽象的,abstract修饰的方法叫抽象方法,abstract修饰的类叫抽象类
方法的重写
以前有的方法不能满足我们现在的需求了,需要重写编写
1. 出现在子父类中
2.方法名和参数列表都相同
3.返回值类型相同或者是其子类
4.访问修饰符不能严于父类
5.抛出的异常不能大于父类
原文:https://www.cnblogs.com/wufanfan/p/12871458.html