Role role1=new SwordsMan()
;就是判断SwordsMan
是否是一种Role
?如果则语法正确,反之则编译失败。相关练习:连接1,连接2,连接3 ,运行结果以下在继承父类以后,定义与父类中相同的方法部署,但执行内容不一样,这称为从新定义。
此处应该注意在从新定义父类中某个方法的时候,必定要注意子类与父类的签署必须相同。这个问题看似不起眼,可是在本身学习过程当中就有发生,在下面的代码调试部分由做出详细的说明,所以为了防止打错字,能够在子类中某个方法前标注@Override
,要求编译程序检查,是否真的从新定义了父类中的某个方法。这部分的练习与结果以下:连接1,连接2,连接3
html
1.在上面的学习中,Role2中的fight中没有任何程序操做,这时候可使用adstract
表示该方法为抽象方法,不用撰写{}区块,直接“;”结束便可。例如
public abstract class Role{ ..... public abstract void fight(); }
2.注意内含抽象方法的类,必定要在class前表示abstract。
3.抽象类不能使用new生成对象。
4.子类继承抽象类方法:1.继续标示该方法为abstract;2.操做抽象方法。
相关练习:连接1,连接2,连接3,运行结果以下图
java
被声明为protected
的成员,相同包中的类能够直接存取,不一样包中的类能够在继承后的子类直接存取。进行练习,连接1,连接2,连接3,运行结果以下图
git
在JAVA中若是想取得父类的方法定义,能够在调用方法前,加上super关键字。相关练习连接1,连接2,连接3
程序结果以下图
编程
this()
与super()
只能选择一个调用,并且必定要在构造函数第一行执行。对于再也不有用的对象,JVM有垃圾收集机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。网络
interface
关键字定义。public abstract
。public abstract
。在接口中能够定义常数,但只能定义public static final
的常数,在程序中能够省略。例如:连接1,连接2,结果以下图
dom
接口能够继承别的接口,也能够同时继承两个以上的接口,一样也是用extends关键字,这表明了继承父接口的行为。ide
enum能够同于定义枚举常量。函数
protected
成员时,定义的toString()
方法中,书上既编写了使用getName()
来取得姓名,也编写了直接用this,name
来取值,那对于protected
成员,是两种均可以吗?getName()
删了,用this.name
也能够取得姓名,相反用getName()
方法也是能够取到值的,比较出了protected
与private
的区别。同时对于getName()
方法,既然是已经声明了的方法那么就对于全部状况均可以使用。public static final
来修饰。public
或者public abstract
,但能够经过编译,是为何?解决:经过查询,接口默认为public abstract,因此即便不加亦不会出错。学习
1.在从新定义行为的时候,不知道为何,我在子类中从新定义的fight老是出错,以下图
this
public abstract class GuessGame { public void go(){ int number=(int) (Math.random()*10); int guess; do{ print("输入数字:"); guess=nextInt(); }while(guess!=number); print("猜中了"); } //public void println(String text){ //print(text); //} public abstract void print(String text); public abstract int nextInt(); }
import java.util.Scanner; public class ConsoleGame extends GuessGame { private Scanner a=new Scanner(System.in); @Override public void print(String text){ System.out.println(text); } //@Override // public void println(String text){ //System.out.println(text); //} @Override public int nextInt(){ return a.nextInt(); } }
2.在学习继承父类接口的时候,当我定义了doswim方法时,编译老是不经过,而且还会出现如下提示:
解决:在上网搜索后发现,static修饰的方法称为静态方法,那么根据提示应该就是static修饰的方法出现了问题,检查代码,发现是将定义的内部类写成了public类,致使编译不经过。修改代码,并再次运行,最终获得正确结果。
代码提交过程截图:
代码量截图:
首先对于以前的内容,可能仍是不够清楚自学的方法,即便以为看的能够了,考试时候就会惊觉学到的东西好像仍是欠缺不少,所以对于重点的掌握仍是须要改进。对于第6、第七章的学习,总的来讲,任务仍是比较繁重的,但一每天的积累,一点点的累积,收获仍是颇丰,慢慢的找到了一些本身学习的门路,好比能够借助网络等。但愿在往后的学习中能够更透彻的掌握学习java的方法,能够事倍功半,是最好不过的。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/20 | 1/4 | 20/20 | |
第二周 | 145/165 | 1/5 | 12/32 | |
第三周 | 411/576 | 1/6 | 16/48 | |
第四周 | 1021/1597 | 1/7 | 25/73 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:25小时
改进状况:这周天天都或多或少的敲了些代码,天天分批次学习,同时对上周的内容温习了一下,同时本身也有去设计一些简单的程序,来结合对书本上的内容的学习。