目录
前言
这是我从网上看到的题目,代码自己写的,这次的题目不难,按照步骤来就行了,我觉得题目写的不清不楚的,不过我还是写了。
题目1
- 基础概念
-
什么是接口,如何定义接口?
- 接口,是Java语言中一种引用类型,是方法的集合。
- 使用interface关键字接口,其中可以定义抽象方法,默认方法,私有方法,静态方法等方法。
-
什么叫做多态,条件是什么?
* 一类事物的行为,具有多种表现形式。
* 条件:
* 继承或者实现
* 方法的重写
* 父类引用指向子类对象 -
使用多态特性,带来了什么样的好处?
* 增强方法的扩展性和服用性 -
使用多态特性,注意什么样的弊端?
* 由于类型的提升,导致调用子类对象特有的方法,必须向下转型。
题目2
- 按步骤编写代码,效果如图所示:
- 编写步骤:
1. 定义接口A,普通类B实现接口A
2. A接口中,定义抽象方法showA。
3. A接口中,定义默认方法showB。
4. B类中,重写showA方法
5. 测试类中,创建B类对象,调用showA方法,showB方法。
代码如下:
public interface A {
void showA();
default void showB(){
System.out.println("BBBB");
}
}
public class B implements A {
@Override
public void showA() {
System.out.println("AAAA");
}
}
public class Test02 {
public static void main(String[] args) {
B b = new B();
b.showA();
b.showB();
}
}
题目3
- 按步骤编写代码
-
编写步骤:
- 定义接口A,普通类B实现接口A。
- A接口中,定义抽象方法showA。
- A接口中,定义私有方法show10(String str),循环打印10次str。
- A接口中,定义默认方法showB10,showC10,分别调用show10方法,传入参数。
- 测试类中,创建B对象,调用showA方法,showB10方法,showC10方法
代码如下:
public interface C {
void showC();
//在接口中定义私有方法在1.8版本中是行不通的
private void show10(String str){
for(int i = 0;i < 10;i++){
System.out.println(str);
}
}
default void showD10(String str){
show10(str);
}
default void showE10(String str){
show10(str);
}
}
public class D implements C{
@Override
public void showC() {
System.out.println("CCCC");
}
}
public class Test03 {
public static void main(String[] args) {
D d = new D();
d.showC();
d.showD10("DDDD");
d.showE10("EEEE");
}
}
题目4
- 按步骤编写代码,效果如图所示:
-
编写步骤
- 定义接口A,普通类B实现接口A。
- A接口中,定义抽象方法showA。
- A接口中,定义私有静态方法show10(String str),循环打印10次str。
- A接口中,定义静态方法showB10,showC10,分别调用show10方法,传入参数。
- B类中,定义静态方法showD
- 测试类中,使用A接口,调用静态showB10方法,showC10方法,
- 测试类中,使用B类,调用showA方法,showD方法。
代码如下:
public interface E {
void showE();
static void showF10(String str){
show10(str);
}
static void showG10(String str){
show10(str);
}
private static void show10(String str){
for(int i = 0;i < 10;i++){
System.out.println(str);
}
}
}
public class F implements E{
@Override
public void showE() {
System.out.println("EEEE");
}
static void showH(){
System.out.println("DDDD");
}
}
public class Test04 {
public static void main(String[] args) {
F f = new F();
f.showE();
F.showH();
}
}
题目5
- 按步骤编写代码,效果如图所示:
-
编写步骤
- 定义接口Universe,提供抽象方法doAnything。
- 定义普通类Star,提供成员发光shine方法
- 定义普通类Sun,继承Star类,实现Universe接口
- 测试类中,创建Star对象,调用shine方法
- 测试类中,多态的方式创建Sun对象,调用doAnything方法,向下转型,调用shine方法。
代码如下:
public interface Universe {
public abstract void doAnything();
}
public class Star {
public void shine(){
System.out.println("星星一闪一闪亮晶晶");
}
}
public class Sun extends Star implements Universe{
@Override
public void doAnything() {
System.out.println("sun:太阳吸引着9大行星旋转");
}
@Override
public void shine(){
System.out.println("sun:光照八分钟,到达地球");
}
}
public class Test05 {
public static void main(String[] args) {
Star star = new Star();
star.shine();
Universe universe = new Sun();
universe.doAnything();
Sun sun = (Sun) universe;
sun.shine();
}
}