子类继承父类的属性和方法并根据需要增加它为自己的新的属性和方法 ,子类 父类(超类)
java所有的类都继承object类,
对象中的克隆
1.克隆的限制
克隆的类必须自己实现Cloneable接口
实现Cloneable的接口应该使用公共的方法重写Object.clone
在java.lang.Object类中克隆方法的定义
protected Object clone()
throws CloneableNotSupportedException;
创建返回对象是一个副本,表明它是一个受保护的方法。
三个类别
Pet类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package text3; public class Pet { private String name; private int health; private int love; public Pet() { } public Pet(String name, int health, int love) { this.name = name; this.health = health; this.love = love; } public void print() { System.out.println("宠物的自白:"); System.out.println("我的名字叫" + getName() + ",健康值是" + getHealth() + ",和主人的亲密度是" + getLove()); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getHealth() { return health; } public void setHealth(int health) { this.health = health; } public int getLove() { return love; } public void setLove(int love) { this.love = love; } }
Dog类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package text3; public class Dog extends Pet { private String strain; public Dog() {// 调用无参构造 super(); } public Dog(String name, int health, int love, String strain) {// 有参构造 super(name, health, love); this.strain = strain; } public String getStrain() { return strain; } public void setStrain(String strain) { this.strain = strain; } }
Penguin类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package text3; public class Penguin extends Pet { private String sex; public Penguin() { } public Penguin(String name, int health, int love, String sex) { super(name, health, love); this.sex = sex; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
public abstract class Pet 抽象防止其实例化