java继承

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
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值