Java第十八天---继承

一、继承

继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类

二、使用继承

1、编写父类

访问修饰符  class Pet {     //公共的属性和方法 }

2、编写子类,继承父类

访问修饰符  class Dog extends Pet {     //子类特有的属性和方法 }

三、理解继承

1、子类访问父类成员

访问父类构造方法

super();    

super(name);

访问父类属性

super.name;

访问父类方法

super.print();

2、(1)使用super关键字,super代表父类对象

(2)在子类构造方法中调用且必须是第一句

(3)不可以访问父类中定义为private的属性和方法

3、子类继承父类的什么?

继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里

继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里

四、继承条件下的构造方法

继承条件下构造方法的调用规则

子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法

系统默认调用父类的无参构造方法

子类构造方法通过super显式调用父类的有参构造方法

执行父类相应构造方法,而不执行父类无参构造方法

子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则

五、例

编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法进行属性初识化和输出相关数据的方法;使用Test类中的main方法定义各类初始化数据后台打印相关数据

public class Vehicle {
    private  int wheels;//车轮个数
    private int weight;//车重

    public Vehicle() {
    }

    public Vehicle(int wheels, int weight) {
        this.wheels = wheels;
        this.weight = weight;
    }
    public void pointVehicle (){
        System.out.println("车轮个数为:"+this.wheels+"个");
        System.out.println("车重为:"+this.weight+"吨");
    }
}
public class Car extends Vehicle {
    private  int  loader;

    public Car() {
    }

    public Car(int wheels, int weight, int  loader) {
        super(wheels, weight);
        this.loader = loader;
    }
    public void pointCar (){
        System.out.println("车载人数为:"+this.loader);
    }
}
public class Truck  extends  Car{
private  int payload;

    public Truck() {
    }

    public Truck(int wheels, int weight, int loader, int payload) {
        super(wheels, weight, loader);
        this.payload = payload;
    }
    public void pointTruck (){
        System.out.println("车载重量为:"+payload);
    }
}
public class Test {
    public static void main(String[] args) {
        Vehicle v=new Vehicle(4,5);
        v.pointVehicle();
        Car c =new Car(4,5,8);
        c.pointVehicle();
        c.pointCar();
        Truck t=new Truck(4,5,8,8);
        t.pointVehicle();
        t.pointCar();
        t.pointTruck();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值