什么是继承?
Java中的继承是一个对象获取父对象的所有属性和行为的机制
使用继承的关键字:extends
子类到底继承了父类哪些内容?
1.继承了public,protected 修饰的属性和方法
2.如果子类和父类在同一个包下的话,还继承了默认修饰符修饰的内容
子类不能继承父类的情况:
1.private修饰的属性和方法
2.子类和父类不再同一个包下,不能继承默认访问权限的成员
3.不能继承构造方法
什么时候使用继承
符合is,a关系的设计时,可以考虑使用继承。
例如:小狗是一个宠物,小猫是一个宠物
在子类中调用父类的方法使用关键字:super
this和super的使用方法是一样的,this调用当前类的方法
super():调用构造方法,调用父类的构造方法,一定要位于第一行
this():调用构造方法
继承的优点
将子类共有的属性和方法抽取到父类中,减少重复代码,实现代码的重用
父类
package animal;
public class Pet {
// 父类
private String name;
private String sex;
private int age;
// 父类的方法
public void sleep(){
System.out.println("我想睡觉了");
}
// 取值赋值
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Pet [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
// 有参和无参构造方法
public Pet() {
super();
System.out.println("Pet的构造方法运行");
}
public Pet(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
}
子类
package animal;
// Cat:子类 Pet:父类
// Cat类继承了Pet类
// 在Java中类是单继承
public class Cat extends Pet {
// 前提是有继承关系
// 在子类中调用父类的方法使用关键字:super
// this和super的使用方法是一样的,this调用当前类的方法
// super():调用构造方法,现在是调用父类构造方法,一定要位于第一行
// this():调用构造方法
// 子类继承父类的方法
public void CatSleep(){
super.sleep();
}
}
测试
package animal;
public class Demo {
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("猫");
// 我想睡觉了
cat.CatSleep();
// Pet [name=猫, sex=null, age=0]
System.out.println(cat);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)