Java中继承的特点
继承的特点:Java语言只支持单一继承,只能继承一个父类(一个儿子只能有一个亲爹)
Java语言支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷)
①继承中成员变量的特点:
子类只能获取父类非私有成员
子父类中成员变量的名字不一样直接获取父类的成员变量
子父类中成员变量名字是一样的获取的是子类的成员变量
就近原则:谁离我近我就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就使用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
super:可以获取父类的成员变量和成员方法
注意下面得到父类和子类中name的方式。如果show()方法中没有String name = "show";则System.out.println(name);根据就近原则得到的就是子类的name(儿子)。如果show()方法中有String name = "show";则System.out.println(name);根据就近原则得到的就是show()方法中的name(show),这时如果要调用子类中的name,用this.name
package com.itheima;
public class ExtendsDemo3 {
public static void main(String[] args) {
Kid k = new Kid();
k.show();
}
}
class Dad {
String name = "爸爸";
}
class Kid extends Dad {
String name = "儿子";
public void show() {
String name = "show";
System.out.println(super.name); // 得到父类的name
System.out.println(this.name); // 得到子类的name
System.out.println(name); // 得到show方法里的name
}
}
②继承中成员方法的特点
子类中没有这个方法,调用父类的
子类中重写了这个方法,调用子类的
方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法
方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值类型无关
继承的优缺点:
优点:提高了代码的复用性,提高了代码的可维护性。
缺点:类的耦合性增强了。
开发的原则:高内聚低耦合
内聚:就是自己完成某件事情的能力
耦合:类与类的关系