内容正文:
7.3.1 创建子类
语法格式如下:
class 父类{
...
}
class 子类 extends 父类{
...
}
7.3类的继承
company profile
7.3.2 成员变量隐藏和方法的重写
子类重新定义父类的方法的操作叫作重写。子类中重写的方法名需要和父类中被重写的方法名相同,参数列表返回值类型也需要一致。
7.3类的继承
company profile
7.3.3 关键字super
语法格式如下:
super.成员变量;
super.成员方法(参数1,...);
7.3类的继承
company profile
实例2 定义子类,创建学生干部类。
company profile
class Student{
int num;
String name;
char sex;
void attend() {
System.out.println(″学号:″+num+″,姓名:″+name+″,已出席。″);
}
void activity() {
System.out.println(″姓名:″+name+″,活动:学习″);
}}
class Staff extends Student{
void activity() {
System.out.println(″姓名:″+name+″,活动:参加活动″);
}}
public class Demo01 {
public static void main(String[] args) {
Staff s = new Staff();
s.name = ″张三″;
s.activity();
}}
姓名:张三,活动:参加活动
【运行结果:】
company profile
7.4.1 抽象方法
抽象方法使用abstract关键字来修饰,抽象方法在定义时不需要具体的实现方法,语法格式如下:
abstract void 方法名称(参数列表);
7.4 抽象、接口与多态
company profile
7.4.2定义抽象类
抽象类和抽象方法一样,必须使用abstract关键字来进行修饰,语法格式如下:
abstract class 抽象类名称{
抽象方法;
}
7.4 抽象、接口与多态
company profile
7.4.3 定义接口
接口的语法格式如下:
public interface 接口名 extends 接口1,接口2...{
//全局常量
//抽象方法
//默认方法
//静态方法
}
7.4 抽象、接口与多态
company profile
接口的实现类的语法格式如下:
class 类名 implements 接口1,接口2...{
...
}
7.4 抽象、接口与多态
company profile
7.4.4 多态:方法的重载与重写
方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,也就是参数的数量或参数类型不能完全相同。
方法重写存在于父类与子类之间,子类定义的方法必须要与父类中的方法具有相同的方法名字,相同的参数列表和相同的返回值类型。
7.4 抽象、接口与多态
company profile
class Student{
int num;
String name;
char sex;
void attend() {
System.out.println(″学号:″+num+″,姓名:″+name+″,已出席。″);
}
void activity() {
System.out.println(″姓名:″+name+″,活动:学习″);
}
}
class Staff extends Student{
void activity() {
System.out.println(″姓名:″+name+″,活动:参加活动″);
}
}
public class Demo01 {
public static void main(String[] args) {
Staff s = new Staff();
s.name = ″张三″;
s.activity();
}
}
实例3 方法重写的应用:为学生类及学生干部类增加日常活动方法。
company profile
姓名:张三,活动:参加活动
【运行结果:】
company profile
class Stu_score{
String name;
float ps;//平时成绩
float qz;//期中成绩
float qm;//期末成绩
void score(double ps,double qm) {
double sum = 0.5*ps+0.5*qm;
Sys