JAVA课堂作业(2019.10.21)
1、

代码:
package class20191021; class Grandparent
{ public Grandparent()
{ System.out.println("GrandParent Created."); } public Grandparent(String string)
{ System.out.println("GrandParent Created.String:" + string); } } class Parent_2 extends Grandparent
{ public Parent_2()
{ //super("Hello.Grandparent."); System.out.println("Parent Created"); // super("Hello.Grandparent."); } } class Child_1 extends Parent_2
{ public Child_1()
{ System.out.println("Child Created"); } } public class TestInherits
{ public static void main(String args[])
{ Child_1 c = new Child_1(); } }
运行结果:
GrandParent Created.
Parent Created
Child Created
修改代码后的运行结果:
GrandParent Created.String:Hello.Grandparent.
Parent Created
Child Created
说明了GrandParent的另一个构造方法运行了,在运行子类前必先运行父类的构造方法,且super方法只能放在子类构造函数的第一句。

因为子类继承了父类的属性和方法,要想初始化子类的对象,则需要父类的属性和方法,所以需要先构造父类的属性和方法,所以要调用父类的构造方法,然后再构造自己在父类的基础上增加的属性和方法。
2、

反编译结果:

再查看jdk中的源码:


会发现输出的是object类,然而object类转换成字符串时会变成 类名@地址 的格式。
3、

编写的代码:
package class20191021;
public class TestOverwrite {
public static void main(String[] args) {
BBB b = new BBB();
b.f1();
b.f2();
}
}
class AAA{
public void f1() {
System.out.println("A run!");
}
}
class BBB extends AAA{
public void f1() {
System.out.println("B run!");
}
public void f2() {
super.f1();
}
}
运行结果:
B run!
A run!
4、


猜测:
第二句会出错。
结果:

结果是第二句和第四句会出错。说明了父类可以向子类类型转换,而不同的子类直接不能类型转换。
5、

运行结果:
Parent.printValue(),myValue=100
Child.printValue(),myValue=200
Child.printValue(),myValue=200
Child.printValue(),myValue=200
Child.printValue(),myValue=201
6、

不合理的地方:
都是同一个操作--喂养,但是要写三个不同的方法。
7、

代码:
package class20191021;
public class TestDuotai {
public static void main(String[] args) {
Feeder feeder = new Feeder();
feeder.feed(new lion());
feeder.feed(new cat_1());
}
}
class Feeder{
public void feed(Animal m) {
m.eat();
}
}
interface Animal{
public void eat();
}
class lion implements Animal{
public void eat() {
System.out.println("狮子要吃肉!");
}
}
class cat_1 implements Animal {
public void eat() {
System.out.println("猫咪爱吃鱼!");
}
}
运行结果:
狮子要吃肉!
猫咪爱吃鱼!
JAVA课堂作业(2019.10.21)的更多相关文章
- Java学习作业(14.4.21)
前三次作业都是基础语法.真的好水啊.从这次开始记录. 1.编写Java程序,把当前目录下扩展名为txt的文件的扩展名全部更名为back. import java.io.*; import java.l ...
- Java课堂作业详解
今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...
- java课后作业2019.11.04
一.编写一个程序,指定一个文件夹,能够自动计算出其总容量 1.代码 package HomeWork; import java.io.File; public class getFileDaxiao ...
- JAVA课堂作业(2019.10.14)
一. (1)代码 package class20191014; import java.util.Scanner; public class ClassHomework { public static ...
- js第二次作业——2019.10.16
第一题:完成省城市的三级联动(包括湖南省),附代码和效果图. 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 </head> ...
- java课后作业2017.10.20
动手动脑1: public class Test{ public static void main(String args[]) { Foo obj1=new Foo(); }}class Foo{ ...
- 第二周Java课堂作业
演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...
- java课堂作业4
第一题 字符串加密问题 1.程序设计思想 读入字符串,然后获取其长度,利用charAt()获取每个位置字符并且对字符加3实现加密处理,并存入新字符串中.如果遇到xyz则减26存入. 2.程序流程图 3 ...
- java课堂作业3 动手动脑
第一题 测试一下代码查看输出结果 public class InitializeBlockDemo { /** * @param args */ public static void main(Str ...
随机推荐
- 看得见的成本!1款工具实现K8S资源成本监控可视化
本文来自Rancher Labs 关注我们,第一时间获取技术干货 计算Kubernetes成本的复杂性 采用Kubernetes和基于服务的架构可以为企业带来诸多好处,如团队可以更快地迁移以及应用程序 ...
- MarkDown使用教程(In Atom)
程序猿都爱写博客,在写博客的过程中,大量运用的就是MarkDown语法了.MarkDown不只是用来写博客,日常生活中的感悟.工作中的心得体会.项目任务安排等等大篇幅的文章都可以用MarkDown来迅 ...
- 第05组 Alpha冲刺 (2/6)(组长)
.th1 { font-family: 黑体; font-size: 25px; color: rgba(0, 0, 255, 1) } #ka { margin-top: 50px } .aaa11 ...
- Effective Modern C++ ——条款2 条款3 理解auto型别推导与理解decltype
条款2.理解auto型别推导 对于auto的型别推导而言,其中大部分情况和模板型别推导是一模一样的.只有一种特例情况. 我们先针对auto和模板型别推导一致的情况进行讨论: //某变量采用auto来声 ...
- 【django】长轮询
API.PY import queue from django.contrib.auth.hashers import check_password from rest_framework.views ...
- 四、c++总结------linux多线程服务端编程
- Linux 笔记1
linux netstat -an | grep 8081 查看端口进程 window netstat -ano|findstr "1433" taskkill -pid ** - ...
- Java从后端下载文件到浏览器
// 注: // 获取项目下文件或者文件流 // File file = new File(this.getClass().getResource("/xls/adminImportUser ...
- python实现一个无序单链表
class Node: """先定一个node的类""" def __init__(self, value=None, next=None) ...
- python 定时任务框架apscheduler
文章目录 安装 基本概念介绍 调度器的工作流程 实例1 -间隔性任务 实例2 - cron 任务 配置调度器 方法一 方法二 方法三: 启动调度器 方法一:使用默认的作业存储器: 方法二:使用数据库作 ...