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();