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 ...
随机推荐
- python编写实现抽奖器
这篇文章主要为大家详细介绍了python编写实现抽奖器,文中代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 # coding=utf-8 import sys import os ...
- Pandas_工资集处理
import numpy as np import pandas as pd from pandas import Series,DataFrame # 1--读取数据文件 file_obj=open ...
- SpringBoot中的响应式web应用
目录 简介 Reactive in Spring 注解方式使用WebFlux 编程方式使用webFlux Spring WebFlux的测试 总结 简介 在Spring 5中,Spring MVC引入 ...
- icmp port unreachable
端口不可达: client------>server 结果server回复端口不可达, 由于是icmp报文: 到达client内核协议栈后进入icmp_rcv处理: /* * Deal with ...
- tcpack--3快速确认模式- ack状态发送&清除
ACK发送状态的转换图 ACK的发送状态清除 当成功发送ACK时,会删除延迟确认定时器,同时清零ACK的发送状态标志icsk->icsk_ack.pending ACK发送事件主要做了:更新快速 ...
- 02、MyBatis XML 全局配置文件
MyBatis-全局配置文件 在MyBatis中全局配置文件有着重要的地位,里面有9类行为信息;如果我们要想将MyBatis运用的熟练,配置全局配置文件是必不可少的步骤,所以我们一定要啃下这一块硬骨头 ...
- CTF-Web-NSCTF-解密WP
CTF-Web-NSCTF-解密WP 题目链接-攻防世界-web2 知识考察:PHP代码审计.逆向加解密 解题思路 先搞清楚各个PHP函数的含义 <?php $miwen="a1zLb ...
- MYSQL渗透测试
部分来源于:先知社区 MYSQL-getshell篇 通过日志getshell 查看日志的物理路径(绝对路径) show variables like '%general%'; 打开日志记录内容 se ...
- [原题复现][2020i春秋抗疫赛] WEB blanklist(SQL堆叠注入、handler绕过)
简介 今天参加i春秋新春抗疫赛 一道web没整出来 啊啊啊 好垃圾啊啊啊啊啊啊啊 晚上看群里赵师傅的buuoj平台太屌了分分钟上线 然后赵师傅还分享了思路用handler语句绕过select过滤.. ...
- SpringBoot整合MyBatis,HiKari、Druid连接池的使用
SpringBoot整合MyBatis 1.创建项目时勾选mybatis.数据库驱动. mysql驱动默认是8.x的版本,如果要使用5.x的版本,创建后到pom.xml中改. 也可以手动添加依赖 ...