第八章类的继承抽象类和接口优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明: (1)通过extends关键字,可将父类的成员继承给 子类。 (2)Java在执行子类的构造方法之前,会先自动调 用父类中没有参数的构造方法,其目的是为了帮助继 承自父类的成员做初始化的操作。 (3)在严格意义上说,构造方法是不能被继承的, 如父Person有一个构造方法Person(String,int),不 能说子类Student也自动有一个构造方法 Person(String,int),但这并不意味着子类不能调用 父类的构造方法。
System.out.println(“我是”+department +”的学生”);
}
}
public class app8_1
//主类
{
public static void main(String args[ ])
{
Student stu=new Student(); //创建Student对象
在 Java 语 言 中 有 一 个 称 为 java.lang.Object的特殊类,所有的类都是直 接或间接地继承该类而得到的。
8.1.1 子类的创建
格式: class SubClass extends SuperClass { …… }
把SubClass声明为类SuperClass的直接子类,如果 SuperClass又是某个类的子类,则SubClass同时也是该类 的间接子类。
2.调用父类中特定的构造方法
【例8.2】调用父类中某指定的构造方法。
1 //app8_2.java 调用父类中的特定构造方法
2 class Person //定义Person
3{
4 private String name;
5 private int age;
6 public Person() //定义无参构造方法
29 { 30 super(name,age); //调用父类的有参构造方法,在第10行定义的
14 this.age=age;
15 }
【例8.2】续
16 public void show()
17 {
18 System.out.println(“姓名:“+name+” 年龄:”+age);
19 }
20 }
21 class Student extends Person //定义继承自Person类的子类
7{
8
System.out.println(“调用了Person的无参构造方法”);
9}
10 public Person(String name, int age) //定义有参构造方法
11 {
12 System.out.println(“调用了Person的有参构造方法”);
13 this.name=name;
第八章类的继承抽象类和接口
8.1继承
继承是实现代码重用的一种有力手段。如果有多个类具有一 些相同的属性和方法,可以将这些相同的属性和方法抽象出 来定义为一个父类,在父类中定义这些属性和方法,则具有 这些属性和方法的其它类可以从这个父类派生出来,不必再 重新定义这些属性和方法,称这些派生而来的类为子类。
Student
22 {
23 private String department;
24 public Student() // Student的无参构造方法
25 {
26
System.out.println(“调用了学生的无参构造方法
Student()”);
27 }
【例8.2】续
28 public Student (String name,int age,String dep)
stu.SetNameAge(“张小三”,21);//调用父类的SetNameAge()方法
stu.show();
//调用父类的show()方法
stu.SetDepartment(“计算机系”);//调用子类SetDepartment{}
方法
}
}
【例8.1】续
程序执行的结果为: 调用了个人构造方法Person() 调用了学生构造方法Student() 姓名:张小三 年龄:21 我是计算机的学生
如果没有extends关键字,则该类默认 为java.lang.Object类的子类。因此,在 Java中所有的类都是通过直接或间接地继 承java.lang.Object类得到的。所以在此 之前的所有例子均是java.lang.Object类
的子类。
继承中的构造方法
1.子类的构建方法
【例8.1】类的继承
}
public void SetNameAge(String name, int age)
{
this.name=name;
this.age=age;
}
【例8.1】续
public void show()
{
System.out.println(“姓名:“+name+” 年龄:”+age);
}
}
class Student extends Person //定义Student类,继承自Person类
{
private String department;
public Student() // Student的构造方法
{
System.out.println(“调用了学生构造方法Student()”);
}
【例8.1】续
public void SetDepartment(String dep)
{
源自文库department=dep;
8.1 类的继承
1.Java语言的特点有:代码的重用 2.通过继承可以实现代码的复用。 3.父类或超类(superclass) 被继承的类 4.子类(subclass) 由继承而得到的类 5.一个父类可以同时拥有多个子类,但由于 Java中不支持多重继承,所以一个类只能有一 个直接父类。
//app8_1.java
继承的简单例子
class Person
//Person类是java.lang.Object类的子类
{
private String name; //name表示姓名
private int age;
//age表示年龄
public Person() //定义无参构造方法
{
System.out.println(“调用了个人构造方法Person()”);