文档详情

JAVA继承、抽象类、接口.doc

发布:2017-04-29约1.37万字共16页下载文档
文本预览下载声明
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同
显示全部
相似文档