java面对对象chp6习题_chap6习题练习.pdf

chap6习题练习

Chp6 面向对象三大特性

Key Point

● 封装/数据隐藏

● 继承的基本语法

● 访问修饰符

● 对象创建过程

● super 关键字

● 方法覆盖

● 多态的基本语法和使用

● instanceof

● 多态用在参数和返回值上

练习

1. (继承、this 和super 关键字)有以下代码

class Super{

public Super(){

System.out.println("Super()");

}

public Super(String str) {

System.out.println("Super(String)");

}

}

class Sub extends Super{

public Sub(){

System.out.println("Sub()");

}

public Sub(int i){

this();

System.out.println("Sub(int)");

}

public Sub(String str){

super(str);

System.out.println("Sub(String)");

}

}

public class TestSuperSub{

public static void main(String args[]){

Sub s1 = new Sub();

Sub s2 = new Sub(10);

Sub s3 = new Sub("hello");

}

}

写出该程序运行的结果。

2. (super)看下面代码,写出程序运行的结果

class Super{

public void m1(){

System.out.println("m1() in Super" );

}

}

public void m2(){

System.out.println("m2() in Super" );

}

}

class Sub extends Super{

public void m1(){

System.out.println("m1() in Sub");

super.m1();

}

}

public class TestSuperSub{

public static void main(String args[]){

Sub s = new Sub();

s.m1();

s.m2();

}

}

3. (多态)有如下代码

class Super{

public void method(){

System.out.println("method() in Super");

}

public void method(int i){

System.out.println("method(int) in Super");

}

}

class Sub extends Super{

public void method(){

System.out.println("method() in Sub");

}

public void method(String str){

System.out.println("method(String) in Sub");

}

}

public class TestSuperSub{

public static void main(String args []){

Super s = new Sub();

s.method(10);

s.method();