面向对象--继承
继承
1.概念
类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。
提高代码的复用性!
extends的意思是“扩展”。子类是父类的扩展
提高代码的复用性!
extends的意思是“扩展”。子类是父类的扩展
不同的叫法:超类、父类、基类、子类、派生类
2.概念2(小结)
- 子类继承父类的成员变量和成员方法,但不继承父类的构造方法
- java中只有单继承 ,没有像c++那样的多继承。
- 如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object
- 继承有传递性
b继承于a,c继承于b,则c可以使用a里的成员变量和成员方法。
3.如何使用继承
写法顺序为:
私有成员变量或成员变量+构造方法+普通方法+设置器和访问器。
public class Pet {
private String name;
private int age;
private int health;
public Pet(String name, int age, int health) {
super();
this.name = name;
this.age = age;
this.health = health;
}
public Pet() {
super();
// TODO Auto-generated constructor stub
}
public void eat() {
System.out.println("宠物在吃饭");
}
public void sleep() {
System.out.println("宠物在睡觉");
}
public void play() {
System.out.println("宠物在玩游戏");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
}
public class Cat extends Pet{
private String color;
public Cat() {
}
public Cat(String name, int age, int health, String color) {
super(name, age, health);
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
4.哪些不能被继承的父类成员(private和构造方法都可以通过构造方法和super关键字进行调用。)
private成员:其实是可以被继承的,也可以说这个属性也是放到子类在堆中的内存里面去了,但是你是没法操作的,系统不会让你去操作这个属性的。
从父类继承过来的成员变量子类不能直接初始化,要用调用父类构造方法,用super调用。
构造方法:一般用super()调用父类的构造方法。
java,子类继承父类,在子类中,用this和super调用父类方法有什么区别
当有相同的属性或者方法是this子类表示调用自己的属性或者方法,
super调用父类的属性或者方法。
当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法
浙公网安备 33010602011771号