继承的这个概念可基于现实的例子来理解,比如小学生和大学生都属于学生类,它们都具有学生的基本属性,但自身又有额外添加的属性,例如大学生有专业这一属性。
继承的关键字是extends(此处特指class类,抽象类不用extends),格式为:
public class 子类名(派生类) extends 父类名(基类,超类){},子类可以继承父类的属性和方法,但是父类的私有属性不能直接调用,可以通过父类的方法调用。
以下为父类代码
package com.cl.login0327;
/**
* 定义学生类
* @author chen
*
*/
public class Student{
//属性
private String name;
//方法
//设置属性的方法
public void setName(String n){
name = n;
}
//获取属性的方法
public String getName(){
return name;
}
//学生的学习方法
public void study(){
System.out.println(name+"正在学习!");
}
}
方法重写:子类与父类具有相同的方法名,但可能此方法的实现途径不一样时,需要在子类中重写父类的方法。比如大学生具有学生类的“学习study这一方法”,但是大学生的学习内容不同于小学生、中学生,需要有自己的学习内容。
方法重写(覆盖)要求:1、两个类具有继承关系(很重要)
2、返回值类型、方法名、参数类型(个数、顺序)完全一样
以下为子类代码:
package com.cl.login0327;
//继承关键字:extends
//public class 子类(派生类) extends 父类(基类,超类){}
//子类会继承父类中所有的属性和方法,但私有属性和方法不能直接调用
public class UNStudent extends Student{
public void print(){
System.out.println("名字:"+getName());
}
//方法重写(覆盖)
//1.有继承关系的两个类之间 2.返回值类型,方法名,参数类型(个数,顺序)完全一样
public void study(){
System.out.println("子类重写父类的方法!");
}
}