JAVA继承、抽象类、接口.doc
文本预览下载声明
JAVA继承、抽象类、接口
编辑人:星辰·樱
联系QQ:838826112
类的继承
通过继承可以实现代码的复用,被继承的类称为父类或超类(superclass),由继承而得到的类称为子类(subclass)。一个父类可以拥有多个子类,但一个类只能有一个直接父类,这是因为JAVA语言中不支多重继承。
子类继承父类的成员变量和成员方法,同时可以修改父类的成员变量或重写父类的方法,还可以添加新的成员变量或成员方法。
JAVA语言中有一个名为java.lang.Object的特殊类,所有的类都是直接或间接地继承该类而得到的。
1.子类的创建
类的继承是通过extends关键字来实现的,在定义类时若使用ectends关键字指出新定义类的父类,就是在两个类之间建立了继承关系。新定义的类称为子类,它可以从父类那里继承所有非private的成员作为自己的成员。
子类的创建:
* 格式: class SubClass extends SuperClass
* {
* .
* .
* .
* }
2.调用父类中特定的构造方法
在没有明确地指定构造方法时,子类还是会先调用父类中没有参数的构造方法,以便进行初始化的操作。在子类的构造方法中可以通过super()来调用父类特定的构造方法。
例://以Person作为父类,创建学生子类Student,并在子类中调用父类里某指定的构造方法。
class Person2
{
private String name;
private int age;
public Person2()//定义Person2类的无参构造方法
{
System.out.println(调用了Person2类的无参构造方法);
}
public Person2(String name,int age)//定义Person2类的有参构造方法
{
System.out.println(调用了Person2类的有参构造方法);
this.name=name;
this.age=age;
}
public void show()
{
System.out.println(姓名:+name+ 年龄:+age);
}
}
class Student2 extends Person2//定义继承自Person2类的子类Student2
{
private String department;
public Student2()//定义Student2类的无参构造方法
{
System.out.println(调用了学生类的无参构造方法Student2());
}
public Student2(String name,int age,String dep)//定义Student2类的有参构造方法
{
super(name,age);//调用父类的胡参构造方法
department=dep;
System.out.println(我是+department+学生);
System.out.println(调用了学生类的有参构造方法Student2(String name,int age,String dep));
}
}
public class App8_2 {
public static void main(String[] args)
{
Student2 stu1=new Student2();//创建对象,并调用无参构造方法
Student2 stu2=new Student2(李小四,23,信息系);//创建对象并调用有参构造方法
stu1.show();
stu2.show();
}
}
/*在子类中访问你类的构造方法,其格式为super(参数列表)。
* super()可以重载,也就是说,super()会根据参数的个数与类型,执行父类相应的构造方法。
* 调用父类构造方法的super()语句必须写在子类构造方法的第一行。
* super()与this()的功能相似,但super()是从子类的构造方法调用父类的构造方法, 而this()则是在同一个类内调用其他的构造方法。
* super()与this()均必须放在构造方法内的第一行,也就是这个原因,super()与this()无法同时存在同一个构造方法内。
* 与this关键字一样,super指的也是对象,所以super同
显示全部