继承是java三大特性之一,继承就是将多个类有相同属性(方法)抽取到一个独立的类中,然后这个独立类与这多个类形成关系–继承
3.1继承优点:
- 易维护
- 提高代码的复用性;
- 继承是多态的前提条件
例子:
class people{
private String name;
private int age;
private String gender;
public people(){}
public people(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
//无参构造
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
//特有方法
public void eat(){
System.out.println(name+age+gender+":喜欢吃巧克力");
}
}
public class extendsDemo extends people{
public static void main(String[] args) {
people p = new people("张三", 28, "男");
p.eat();
}
}
3.3继承的特点
- java语言中继承只支持单继承不支持多继承,但是支持多层继承
3.4继承书写的格式
- 书写的格式是:class 类名 extends 父类{}
3.5继承中的关键字
- estends:子类继承父类的关键字
- super:在子类中指向父类对象地址,相当于new 一个父类
3.6 继承中的注意事项
- 子类继承父类,只能继承公共的属性与公共的方法。私有的属性与私有的方法不能被外界访问,只能通过公共的方法get/set进行间接的访问
- 父类的构造方法不能继承,子类可以使用super关键字进行访问
- 子类的成员变量与父类的成员变量如果一致的情况下,遵循就近原则
- 子类继承父类则默认访问的是 **无参构造 **(Zi Zi = new Zi();)。如果需要访问有参构造则需要在new对象后的()添加具体的参数。
- 子类肯定会使用父类的属性方法,所以在子类的构造方法中第一行隐藏了 super();先给父类初始化数据。
- 父类如果没有构造方法,则子类所有的构造方法都会报错
3.7继承中的缺点
- 降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束;
- 增强了耦合性。当父类的常量、变量和方法被修改时,需要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大段的代码需要修改。