接口 与 抽象Interface and Abstract
接口 x 向上转换
分析题
分析每一段代码,能否通过编译
1.
Inter.java
1 2 3 public interface Inter { public void func();}
Cla.java
1 2 3 public class Cla { }
Main.java
1 2 3 4 5 6 public class Main { public void run() { Inter inter = new Cla(); inter.func(); }}
A
可以通过编译
B
编译会出错
2.
Inter.java
1 2 3 public interface Inter { public void func();}
Cla.java
1 2 3 public class Cla implements Inter { }
Main.java
1 2 3 4 5 public class Main { public void run() { Inter inter = new Cla(); }}
A
可以通过编译
B
编译会出错
3.
Inter.java
1 2 3 public interface Inter { public void func();}
Cla.java
1 2 3 4 5 public class Cla implements Inter { public void func() { ... }}
Main.java
1 2 3 4 5 6 public class Main { public void run() { Inter inter = new Cla(); inter.func(); }}
A
可以通过编译
B
编译会出错
4.
Inter.java
1 2 3 public interface Inter { public void func();}
Cla.java
1 2 3 4 5 public class Cla { public void func() { ... }}
Main.java
1 2 3 4 5 6 public class Main { public void run() { Inter inter = new Cla(); inter.func(); }}
A
可以通过编译
B
编译会出错
接口 x 类型转换
分析题
IA.java
1 2 3 public interface IA { public void func();}
CA.java
1 2 3 4 5 public class CA implements IA{ public void func() { ... }}
IB.java
1 2 3 public interface IB { public void func();}
CB.java
1 2 3 4 5 public class CB extends CA implements IB{ public void func() { ... }}
基于上面的代码,写出 所有 可以接住 Cla2 对象的变量类型
也就是,下面代码中 Xxx 可以是什么?
Main.java
1 2 3 4 5 public class Main { public void run() { Xxx some = new CB(); }}
答案
Object IA CA IB CB
抽象Abstract
分析题
分析下面的陈述句是错是对
1.
抽象类里一定有抽象方法
A
对
B
不对
2.
有抽象方法的类,一定是抽象类
A
对
B
不对
3.
一个类内,如果没有声明抽象方法,那么这个类可以被 new
A
对
B
不对