继承:
- 多个类中存在相同属性和行为时, 将这些内容抽取到单独的一个类中, 那么这多个类就无需再定义这些属性和行为了, 只要继承那个类即可,这个关系就叫继承
- 注意:
有了继承以后, 我们在定义一个类的时候, 可以在一个已经存在的类的基础上, 还可以定义自己的新成员
格式
在Java中, 可以通过extends关键字来实现类与类的继承, 具体格式如下:
public class 子类 extends 父类{ //子承父业
}
//父类
class Person{
String name;
public void eat(){
}
}
//子类
class Student extends Person{
//子类在继承父类后,可以使用父类中的非私有成员
public void printInfo() {
name = "张三";//直接可以访问父类中的成员变量
System.out.println(name);
}
}
继承的好处:
-
可以提高程序中代码的复用性
-
可以提高程序代码的可维护性
继承的弊端: -
类和类之间建立关系后,类和类之间就有了依赖性,产生耦合(高耦合)
耦合:紧密连接的程序
程序的开发和设计理念:高内聚、低耦合
变量的访问原则:
- 提前:方法中、子类中、父类中,存在一模一样的变量
- 1:在一个方法中有局部变量时,优先使用局部变量
- 2: 方法中没有局部变量时,优先使用子类自己的成员变量
- 3: 子类中没有成员变量时,使用父类中的成员变量
- 3: 假设:局部变量、子类成员变量、父类成员变量都没有,会报错
例如:
public class Father {
int age=30;//父类中的成员变量
}
public class Son extends Father {
//定义子类中的成员变量
int age=20;
public void show(){
System.out.println(age);//使用子类中的age变量 结果:20
}
}
下面补充的super和this两个关键字的作用:
this关键字:
- this表示当前对象
- 作用:区分成员变量和局部变量
- 使用方式:
- this.成员变量=常量值
- this.成员方法()
- this() //调用本类的无参构造方法
- this(“20”) //调用本类中带参构造方法
super关键字:
- super表示父类对象
- 作用:访问父类中的成员(成员变量、成员方法、构造方法)
- 使用方式:
- 成员变量
- super.成员变量=常量值 //给父类中的成员变量赋值
- 成员方法
- super.成员方法()
- 构造方法
- super() //调用父类中无参构造方法
- super(200) //调用父类中有参的构造方法
- 成员变量