Day09_Java_作业
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){};
}
子类1:
package 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);
}
}
子类2:
package 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
基础班老师
会日语
Day09_Java_作业的更多相关文章
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...
- 使用T-SQL找出执行时间过长的作业
有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , ...
- T-SQL检查停止的复制作业代理,并启动
有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...
- Python09作业思路及源码:高级FTP服务器开发(仅供参考)
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...
- 个人作业week3——代码复审
1. 软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...
- 个人作业-week2:关于微软必应词典的案例分析
第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...
- 软件工程第二次作业——git的使用
1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...
- hadoop作业调度策略
一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClie ...
- SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误
1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业 ...
随机推荐
- 指针和引用(pointer and reference),传值和传址
pass by adress pass by reference和pass by pointer的共同点都在于传址,都是对于对象的地址的复制,而不会对对象进行产生副本的操作. pass by refe ...
- vue3组合式API介绍
为什么要使用Composition API? 根据官方的说法,vue3.0的变化包括性能上的改进.更小的 bundle 体积.对 TypeScript 更好的支持.用于处理大规模用例的全新 API,全 ...
- Lattics:一款简单易用、好看强大的「类脑式」知识管理工具,笔记应用与写作软件二合一
如何选择一款适合自己的知识管理工具? 随着数字化时代的到来,越来越多的人意识到知识管理的重要性.笔记软件和写作软件作为一种常用的知识管理工具,一直以来备受关注.从最早的印象笔记.有道云.为知笔记.幕布 ...
- 2023-02-15:商场中有一展柜A,其大小固定,现已被不同的商品摆满, 商家提供了一些新商品B,需要对A中的部分商品进行更新替换, B中的商品可以自由使用,也就是可以用B中的任何商品替换A中的任何
2023-02-15:商场中有一展柜A,其大小固定,现已被不同的商品摆满, 商家提供了一些新商品B,需要对A中的部分商品进行更新替换, B中的商品可以自由使用,也就是可以用B中的任何商品替换A中的任何 ...
- 2020-10-15:mysql的双1设置是什么?
福哥答案2020-10-15:#福大大架构师每日一题# [答案来自知乎:](https://www.zhihu.com/question/425704691) 其实就是innodb_flush_log ...
- golang基础面试题,不完整
启动流程 Q.go的init函数是什么时候执行的? Q.多个init函数执行顺序能保证吗? Q.go init 的执行顺序,注意是不按导入规则的(这里是编译时按文件名的顺序执行的) Q.init函数能 ...
- 8张图带你全面了解kafka的核心机制
前言 kafka是目前企业中很常用的消息队列产品,可以用于削峰.解耦.异步通信.特别是在大数据领域中应用尤为广泛,主要得益于它的高吞吐量.低延迟,在我们公司的解决方案中也有用到.既然kafka在企业中 ...
- 2023-05-24:为什么要使用Redis做缓存?
2023-05-24:为什么要使用Redis做缓存? 答案2023-05-24: 缓存的好处 买啤酒和喝啤酒的例子可以帮助我们理解缓存的好处. 假设你在超市里买了一箱啤酒,如果你需要每次想喝啤酒就去超 ...
- Vuex modules 中active相互调用
大中型项目中使用vuex进行状态管理时,经常会按模块分割到不同的module中去,而操作中难免有模块中的active相互调用的情况,然而有时也会出现一些问题,这里顺便记录下 store目录结构 在us ...
- MYSQL数据库的创建和删除
打开Windows命令行,输入登录用户和密码 mysql -h localhost -u root -p 创建新数据 CREATE DATABASE zoo; 查看系统中的数据库 SHOW DATAB ...