继承

概述:继承就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。

   继承描述的是事物之间的所属关系,这种关系是: is-a 的关系

好处:提供代码的复用性;

   类与类之间产生关系,是多态的前提

继承的格式:使用extends关键字

  public class 父类{

  }

   public class 子类  extends 父类{

  }  

public class ExtendsTest {
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.name="张三";//为属性赋值
teacher.work();//调用父类的方法
teacher.teach();//调用本类的方法
}

}
class Employee{
//定义属性
String name;
//定义方法
public void work(){
System.out.println("努力工作!");
}
}

class Teacher extends Employee{
//定义一个教学的方法
public void teach(){
System.out.println("教语文!");
}
}

继承的特点:

1. Java只支持单继承,不支持多继承。

2. 子类和父类是一种相对的概念。 

当子类成员变量与父类成员变量同名时,调用父类的非私有成员变量应使用super关键字。 

public class ExtendsTest01 {
public static void main(String[] args) {
Zi zi = new Zi();
zi.print();
}
}

class Fu{
//父类中菲私有的成员变量
int num = 10;
}
class Zi extends Fu{
int num = 9;

public void print(){
System.out.println("调用父类非私有的成员变量:"+super.num);//10
System.out.println("调用子类成员变量:"+this.num);//9 ,this可省略
}
}

如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。

方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效 果,也称为重写或者复写。声明不变,重新实现。

1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。 

  

原文地址:https://www.cnblogs.com/lifengSkt/p/13261075.html