JAVA练习题之继承&抽象类

开始之前先温习一下继承和抽象类的一些基本概念

抽象类

如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。

因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。

                                                                                                                        ----来自廖雪峰的网站

继承类

继承是面向对象程序的一个主要特征,是使用已经定义的类作为基础定义新类的技术。广义的说,继承是指能够直接获得已有类的性质和特征,而不要重复定义他们,应此,继承是指类之间共享属性和操作的机制。被继承的类称之为父类,继承者成为子类。在Java程序中,一个子类可以继承一个父类,直接获取父类的属性和方法。在Java只支持单继承,不支持多继承。也就是说,Java的子类只能有一个父类,不能有多个父类。因此在extends后面,只能有1个父类名。

关键词 : extends  super  protected

                                                                                                              ----来自Java程序设计书P93

IS_A(是)关系是继承的一个明显特征,继承的基本思想是,可以基于已有的类创建新的类继承已存在的类就是复用(继承)这些类的方法,而且可以增加一些新的方法和字段,使新类能够适应新的情况。

                                                                                                                --来自博主Java老师的课件

回到练习题;

1、创建一个Vehicle类并将它声明为抽象类。在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值。
2、创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。
4、 在Car类中,应当显示“四轮车”信息,而在Motorbike类中,应当显示“双轮车”信息。创建另一个带main方法的类。
5、在该类中创建Car和Motorbike的实例,并在控制台中显示消息。

继承图

public abstract class Vehicle {     //使用了abstract 将该类变成抽象类
    public abstract void NoOfWheels();//使用了abstract 将该方法变成抽象方法
}
public class Car extends Vehicle{    //使用了继承extends 继承Vehicle类的功能

    public void NoOfWheels() {      //覆写NoOfWheels方法
        System.out.println("四轮车");
    }
}
public class Motorbike extends Vehicle{    //使用了继承extends 继承Vehicle类的功能

    public void NoOfWheels() {         //覆写NoOfWheels方法
        System.out.println("双轮车");
    }
}
public class Main {
    public static void main(String[] args) {
        Vehicle c = new Car();//通过抽象类Vehicle类型去引用具体的子类的实例:
        c.NoOfWheels();//调用NoOfWheels方法
        Vehicle m = new Motorbike();//通过抽象类Vehicle类型去引用具体的子类的实例:
        m.NoOfWheels();//调用NoOfWheels方法
    }
}

运行结果: 

题目来源:

原文链接:https://blog.csdn.net/bear_zk/article/details/78023598

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值