Java练习题3
来源:互联网 发布:手持gps数据采集器 编辑:程序博客网 时间:2024/06/07 07:41
Lesson 3 上机练习题——继承
课堂练习:
– 在包bzu.aa中定义一个交通工具类(Vehicle):
属性——载客量(capacity)
方法
无参构造方法(给capacity初始化值为2,并输出“执行交通工具类的无参构造方法。”)
有参构造方法(传参给capacity初始化,并输出“执行交通工具的有参构造方法。”)
capacity的set、get方法
print方法:输出capacity
– 在包bzu.aa中定义一个汽车类(Car)继承交通工具类:
属性——speed
方法
无参构造方法(给speed初始化值为0,并输出“执行汽车类的无参构造方法。”)
有参构造方法(用super关键字调用父类的有参构造方法,传参给speed初始化,并输出“执行汽车类的有参构造方法。”)
加速(speedup):speed+10并返回speed;
减速(speeddown):speed-15并返回speed;
重写print方法:输出speed和capacity。
– 在包bzu.bb中定义一个final的公交车类(Bus),继承汽车类:
属性——载客量(capacity)<变量隐藏>
方法
无参构造方法(给capacity初始化值为20,并输出“执行公交车类的无参构造方法。”)
有参构造方法(用super关键字调用父类的有参构造方法,传参给capacity初始化,并输出“执行公交车类的有参构造方法。”)
重写print方法:输出speed、 capacity及父类的capacity。
– 在包bzu.bb中编写一个主类Test:
主函数
调用无参构造方法创建一个Car的对象car;调用加速方法将速度加至50,调用print方法;调用减速方法,将速度减至20,调用print方法。
调用有参构造方法创建一个Bus的对象bus;调用print方法。
##
package bzu.aa;public class Vehicle { protected int capacity; public Vehicle(){ capacity=2; System.out.println("执行交通工具类的无参构造方法。"); } public Vehicle(int capacity){ this.capacity=capacity; System.out.println("执行交通工具的有参构造方法。"); } protected void setCapacity(int capacity){ this.capacity=capacity; } protected int getCapacity(){ return capacity; } protected void printf(){ System.out.println("交通工具的载客量为: "+capacity); }}
package bzu.aa;public class Car extends Vehicle{ protected int speed; public Car(){ super(); speed=0; System.out.println("执行汽车类的无参构造方法。"); } public Car(int speed){ super(200); this.speed=speed; System.out.println("执行汽车类的有参构造方法。"); } public void speedup(int n){ speed=speed+10*n; } public void speeddown(int n){ speed=speed-15*n; } public void print(){ System.out.println("汽车的载客量为: "+capacity+"汽车的速度为:"+speed); }}
package bzu.bb;import bzu.aa.Car;public final class Bus extends Car{ public int capacity; public Bus(){ super(); capacity=20; System.out.println("执行公交车类的无参构造方法。"); } public Bus(int capacity){ super(50); this.capacity=capacity; System.out.println("执行公交车类的有参构造方法。"); } public void print(){ System.out.println("公交车的速度为:"+speed+"公交车的载客量为:"+ capacity+"交通工具的载客量为:"+getCapacity()); }}
package bzu.bb;import bzu.aa.Car;public class Test { public static void main(String[] args) { Car car=new Car(); car.speedup(50); car.print(); car.speeddown(20); car.print(); Bus bus=new Bus(30); bus.print(); }}
总结:注意区分Bus类和主类在一个包中,Vehicle和Car类在另一个包中,Car和Bus类都继承Vehicle类,注意包的导入和权限修饰符的问题。另外,学会用super类,首先明白super明显显示地指出子类可以直接访问它父类的构造函数,方法和变量。例如,当调用一个实例方法时,如果实例本身并没有定义该方法,那我们会自然的得到他父类中定义的同名的方法。尽管会因为方法的覆盖或者使用定义与父类一样的实例或类变量(隐藏)而失去访问的权限。构造函数不能继承,因此super是访问父类中构造函数的唯一途径。
- java 数组练习题3
- Java练习题3
- Java练习题3
- Java语法基础练习题3
- java 练习题
- JAVA练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- Java练习题
- java练习题
- java练习题
- java练习题
- 关于win7 x64 连接oracle 客户端 VS2010调试 提示“ORA-12154: TNS: 无法解析指定的连接标识符 ” 原创 2013年04月13日 12:50:56 标签:Oracle
- centos7 mini 及ganglia3.7.2安装
- Windows网络守门人UserLock教程:让用户、组或组织单位进行同步会话
- 读入一个自然数n,计算其各位数字之和
- LeetCode669. Trim a Binary Search Tree
- Java练习题3
- 数据库锁等待超时 java.sql.SQLException: Lock wait timeout exceeded
- caffe安装和配置基于Ubuntu16.04
- 关于java上传文件到tomcat后,重新部署项目,文件消失的解决方法
- C语言 静态变量与自动变量的区别
- phpstorm version 2016.2 License Server激活
- Ubuntu下Hadoop环境的配置
- jQuery动画stop()用法
- tensorflow graph 中获取variable operation