java继承

来源:互联网 发布:电脑屏幕视频录像软件 编辑:程序博客网 时间:2024/05/21 15:50

java继承


类的继承只能单继承,接口的继承可以多继承:一个类只能继承一个类,但一个类可以继承多个接口。

用extends关键字继承

java支持单继承,一个类只能继承一个类,但是可以多重继承:A继承B,B继承C……..。继承方式为:
class A extends B{}

public class Person {    public String name;    public int age;    public Person(){        System.out.println("父类无参构造方法");    }    public Person(String name,int age){        this.age=age;        this.name=name;        System.out.println("父类有参构造方法");    }    public void setName(String name){        this.name=name;    }    public String getName(){        return name;    }    public void setAge(int age){        this.age=age;    }    public int getAge(){        return age;    }}

public class Student extends Person{    private int number;    private String school;    public Student(){        //super();//调用父类无参构造方法        super("wsl",23);//调用父类有参构造方法        System.out.println("子类有参构造方法");    }    public void setNumber(int number){        this.number=number;    }    public int getNumber(){        return number;    }    public void setSchool(String school){        this.school=school;    }    public String getSchool(){        return school;    }    public void test(){        String name=super.name;        super.getAge();//调用父类非私有方法    }    public static void main(String args[]){        Student stu=new Student();        stu.setName("xm");//        stu.setSchool("HNU");    }}

this关键字和super关键字

this和super有相似之处,我们不用创建对象就可以同过this调用本类的属性和方法;相似的我们可以通过super关键字调用父类的所有非私有的属性和非私有的方法,调用父类方法时super可以省略。

final关键字

final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
- 声明类
final class 类名 {//类体}
- 声明方法
(public/private/default/protected) final 返回值类型 方法名(){//方法体}

:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final


用implents关键字继承

  • 使用implements关键字可以继承多个接口,继承方式为:
    class C implements A ,B{}//A和B为接口
  • 接口中的方法都是虚方法,所以使用implements时必须重写调用的所有接口中的所有方法
public interface A {    public void eat();    public void sleep();}
public interface B {    public void work();}
public class C implements A,B{    @Override    public void work() {        // TODO Auto-generated method stub    }    @Override    public void eat() {        // TODO Auto-generated method stub    }    @Override    public void sleep() {        // TODO Auto-generated method stub    }}
                                        火桑花开     于2017/7/18
原创粉丝点击