标签:支持 ast final 停止 变量 system 否则 stat 表示
public interface Swimmer{
public abstract void swim();
}
implements
类要操作接口,必须使用 implements 关键字,例如:
public abstract class Fish implements Swimmer{
}
Swimmer swimmer = new Shark();
Fish fish = (Fish)swimmer;
以下的例子将会抛出 ClassCastException 错误:
Swimmer swimmer = new Human();//将 swimmer 参考到 Human实例
Shark shark = (Shark)swimmer;//让 swimmer 扮演鲨鱼
已经将 swimmer 参考到 Human 实例了,再让他扮演鲨鱼就会出现错误
public interface Diver extends Swimmer{ //接口 Diver 继承了接口 Swimmer
public abstract void dive();
}
public interface Swimmer{
public abstract void swim();
}
public interface Swimmer{
void swim(); //此处默认是 public abstract
}
interface Action{
void execute();
}
class Some implements Action{
void execute(){
//Some 类在操作 execute() 方法时,没有撰写 public ,因此默认为是包权限,这等于是将 Action 中的 public 方法缩小为包权限,所以编译失败
//将 Some 类的 execut() 设为public 才可通过编译
System.out.println("做一些服务");
}
}
在 interface 中,只能定义 public static final的枚举常数 ,例如:
public interface Action{
public static final int STOP = 0;
}
如下撰写程序时,编译程序会自动展开为public static final
public interface Action{
int STOP = 0;
}
interface Action{
void executes();
}
// 定义 Acton 为父接口
interface Some extends Action{
void doSome();
}
interface Other extends Action{
void doOther();
}
// Some 和 Other 接口继承 Action 接口
public class Service implements Some,Other{
// Service 继承 Some 和 Other 接口
@Override
public void execute(){
System.out.println("execute()");
}
// Service 重新定义 execute() 方法
@Override
public void doSome{
System.out.println("doSome()");
}
@Override
public void doOther{
System.out.println("doOther()");
}
// Service 重新定义 doSome 和 doOther 方法
}
new 父类()|接口(){
//类本体操作
};
final int[] numbers = {10,20};
enum
enum 可定义枚举常数,但实际上 enum 定义了特殊的类,继承自 java。lang.Enum ,编译过后会产生 Action.class 文件,可用这个 Action 声明类型,例如:
public class Game {
public static void main(String[] args){
play(Action.RIGHT);
play(Action.UP);
}
public static void play(Action action){
switch(action){
case STOP:
out.println("播放停止动画");
break;
case RIGHT:
out.println("播放向右动画");
break;
case LEFT:
out.println("播放向左动画");
break;
case UP:
out.println("播放向上动画");
break;
case DOWN:
out.println("播放向下动画");
break;
}
}
}
Java中的继承和C语言中调用函数有何区别?
继承类和接口有何区别?
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 300/1600 | 2/10 | 30/120 |
20175316盛茂淞 2018-2019-2 《Java程序设计》第5周学习总结
标签:支持 ast final 停止 变量 system 否则 stat 表示
原文地址:https://www.cnblogs.com/sms369/p/10634035.html