java要求输出y的值为1_JAVA基础知识练习1(含答案).doc

JAVA基础知识练习1(含答案)

JAVA基础知识练习(含答案)

一、思考题

1.Overload(方法重载)和Override(方法覆盖)的区别。

答:

相同点:

都要求方法同名

都可以于于抽象方法和非抽象方法之间

不同点:

方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。

方法覆盖要求返回类型必须一致,而方法重载不做限制。

方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承而来的方法)。

方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载没有限制。

父类的一个方法只能被子类覆盖一次,而一个方法所在的类中可以被多次重载

2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?

答:编译器会一直上溯到最初类,执行该类构造方法,然后依次执行各子类构造函数

3.比较this和super的区别

答:this是引用本对象,super是引用父类的对象。

4.什么是多态?面向对象程序设计为什么要引入多态的特性?使用多态有什么优点?

答:多态基本含义是“拥有多种形态”,具体指在程序中用相同的名称来表示不同的含义。例如:用同一方法名来表示不同的操作;面向对象程序设计引入多态特征的原因是,使程序更具有可读性,重复利用性;采用多态技术的优点:

引进多态技术之后,尽管子类的对象千差万别,但都可以采用 基类引用.方法名([参数]) 统一 方式来调用,在程序运行时能根据子对象的不同得到不同的结果。这种“以不变应万变”的形式可以规范、简化程序设计,符合软件工程的“一个接口,多种方法”思想。

二、编程题

1.类、对象、方法、继承

(1) 声明矩形类Rect,它封装了:

两个成员变量(访问权限为private):

float length; //矩形的长度,float类型

float width; //矩形的宽度,float类型

9个成员方法(访问权限均为public):

Rect() //默认构造方法

Rect(float l, float w) //带参数的构造方法

void setLength(float l) //改变矩形的长度

float getLength() //得到矩形的长度

void setWidth(float w) //改变矩形的宽度

float getWidth() //得到矩形的宽度

String toString() //输出矩形信息。返回形如: "长度: xxx, 宽度:xxx”

//字符串(其中:xxx表示相应的数值).

float getPerimeter()//得到矩形的周长

float getArea()//得到矩形的面积

(2) 再定义一个长方体类Recter,它继承了矩形类Rect (上一题已定义),并增加了:

一个成员变量(访问权限为private):

height//长方体的高度,float类型

三个成员方法(访问权限均为public):

Recter (float l, float w,float h) //带参数的构造方法,

//需要调用基类带参数构造方法.

float getVolume( ) //返回长方体的体积 (计算公式:底面积×高度)

String toString()//重写toString()方法,返回形如:“矩形长度: xxx, 矩形

//宽度:xxx,长方体的高度:xxx,矩形底面积:xxx,长方体

//体积:xxx”字符串(其中:xxx表示相应的数值).

(3) 最后定义一个主类:RectTest,在它的main()方法中创建一个矩形长度为10.5,矩形宽度为:5.5, 长方体的高度为:6.5的长方体对象ry,然后调用toString()方法输出其相应信息。

2.写出下列实现多态的程序的运行结果

class Animal {

public void display(){

System.out.println("我是一只动物,...");

}

}

class Cat extends Animal {

public void display(){

System.out.println("我是能捉老鼠的猫,...");

}

}

class Dog extends Animal {

public void display(){

System.out.println("我为主人尽忠职守的猎犬,...");

}

}

public class AnimalTest {

public static void main(String

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值