Day09_Java_作业

来源:互联网 发布:淘宝电脑键盘手写图片 编辑:程序博客网 时间:2024/06/06 03:55

A:简答题
1、什么是多态,多态的前提是什么?
2、多态中成员(成员变量,成员方法,静态成员方法)的访问特点是什么?
3、多态的好处?
4、多态的弊端是什么,如果我们想访问子类的特有的功能我们应该怎么办?
5、抽象类是什么,抽象类的特点?
6、抽象类中有没有构造方法,如果有它是用来做什么的?
7、接口中成员变量的特点,以及成员方法的特点?
8、请说出类与类,类与接口,以及接口与接口的关系以及特点?
9、抽象类和接口的区别?
10、abstract不能和那些关键字共存,为什么?
13、请说说下面关键字分别是什么,有什么用?
private
this
super
static
final
abstract
interface
extends
implements

B:看程序写结果(写出自己的分析理由),程序填空,改错,看程序写结果
1、给出以下代码,请问该程序的运行结果是什么?
interface Base {
int k = 0;
}
class Demo implements Base {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println( d.k );
System.out.println( Demo.k );
System.out.println( Base.k );
}
}

输出:0(d.k)寻找子类的数据,若没有,寻找父类接口数据0(Demo.k)寻找子类的数据,若没有,寻找父类接口数据0(Base.k)寻找父类接口数据

2、给出以下代码,请问该程序的运行结果是什么?
class Super {
int index = 5;
public void printVal() {
System.out.println(“Super”);
}
}
class Sub extends Super {
int index = 2;
public void printVal(){
System.out.println(“Sub”);
}
}
class Demo {
public static void main(String[] args) {
Super sup = new Sub();
System.out.print(sup.index + “,”);
sup.printVal();
}
}

3、给出以下代码,请问该程序的运行结果是什么?
class SuperEx {
String r;
String s;
public SuperEx(String a, String b) {
r = a;
s = b;
}
public void aMethod(){
System.out.println(“r:”+r);
}
}

class SubEx extends SuperEx {
public SubEx(String a, String b){
super(a, b);
}
public static void main(String[] args){
SuperEx a = new SuperEx(“Hi”, “Tom”);
SuperEx b = new SubEx(“Hi”, “Bart”);
a.aMethod();
b.aMethod();
}
public void aMethod(){
System.out.println(“r:”+r+”s:”+s);
}
}
4、给出以下代码,请问该程序的运行结果是什么?
class Demo {
public static void main (String[] args) {
Base b = new SubClass();
System.out.println(b.x);
System.out.println(b.method() );
}
}
class Base {
int x = 2;
int method(){
return x;
}
}
class SubClass extends Base {
int x = 3;
int method() {
return x;
}
}

答:输出:2 (不太懂)3(子类继承父类,父类没有被静态修饰,属于一般成员方法,口诀:编译看父类,运行看子类)

5、给出以下代码,请问该程序的运行结果是什么?
class Demo extends SuperClass {
String s = “this”;
public static void main (String[] args) {
new Demo();
}
Demo(){
super.display();
}
void display(String s){
System.out.println(“this: “+ s);
}
}
class SuperClass {
String s = “super”;
void display(String s){
System.out.println(“super:” + s);
}
}
答输出:

输出:super:this(不太懂)父类没有被静态修饰,属于一般成员方法,口诀:编译看父类,运行看子类

C:编程题
1、编写java程序,分析如下需求,写出你分析的类有哪些,以及功能。最后写一个测试类,针对每个类的功能进行测试。
传智播客的老师有基础班的,也有就业班的。
共性:
属性:姓名,年龄
功能:讲课。
现在又要针对日语这种小语种单独开班,
需要部分基础班老师和部分就业班老师会说日语。
请用所学知识把上面的内容用代码体现。

父类package student;/** * @author Aoman_Hao */public abstract class Teacher {    String name;    int age;    public abstract void Teaching();    public  void show(String name,int age){};}子类1package student;/** * @author Aoman_Hao */public class Day09_Job_Teacher1 extends Teacher implements Teacher_Japanese {    @Override    public void Teaching() {        System.out.println("就业班老师");    }    @Override    public void Japanse() {        System.out.println("会日语");    }    public void show(String name,int age){        System.out.println("姓名:"+name+",年龄:"+age);    }}子类2package student;/** * @author Aoman_Hao */public class Day09_Teach_Teacher2 extends Teacher implements Teacher_Japanese {    @Override    public void Teaching() {        System.out.println("基础班老师");    }    @Override    public void Japanse() {        System.out.println("会日语");    }    public void show(String name,int age){        System.out.println("姓名:"+name+",年龄:"+age);    }}接口类:package student;/** * @author Aoman_Hao */public interface Teacher_Japanese {     public abstract void Japanse();}测试类:package student;/** * @author Aoman_Hao */public class Teacher_Test1 {    public static void main(String[] args) {    Teacher Job_t1= new Day09_Job_Teacher1();    Job_t1.show("一一", 35);    Job_t1.Teaching();    Teacher_Japanese Job_t11 = new Day09_Job_Teacher1();    Job_t11.Japanse();    Teacher Tea_t1 = new Day09_Teach_Teacher2();    Tea_t1.show("依依", 33);    Tea_t1.Teaching();    Teacher_Japanese Tea_t11 = new Day09_Teach_Teacher2();    Tea_t11.Japanse();    }}输出结果:姓名:一一,年龄:35就业班老师会日语姓名:依依,年龄:33基础班老师会日语
原创粉丝点击