1.写出定义接口的格式

interface A{

public abstract void work();

}

注:

(1)接口的权限修饰符如果不标明,默认为default,仅可在本包中访问;

(2)接口中的方法必须为抽象方法,且public abstract可以不写,默认为public abstract.实际开发中通常写为 public void work();

(3)接口的子类叫做实现类,命名一般为接口名+Impl,如InterfaceImpl;

(4)java8中有新特性,可实现类方法(static修饰,可由接口直接调用)和默认方法(default修饰,由实现类的实例化对象调用);



2.写出实现接口的格式

实现接口的类称为实现类,格式如下:

//定义接口

interface A{

public void work();

}

//定义实现类

class B implements A{

public void work(){

System.out.println("实现类");

}

}


3.说出接口中成员的特点

接口由全局常量和抽象方法构成.全局常量由public static final修饰.如:

interface A{

public static final String str = "abc";

public void work();

}



4.接口和抽象类的区别

区别:

1)抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

2)一个类只能继承一个直接父类(可以为抽象类),却可以实现多个接口(弥补了单继承的局限);

3)抽象类为继承体系中的共性内容,接口为继承体系中的扩展功能.


相同:

1)都位于继承的顶端,用于被其他类实现或继承;

2)都不能直接实例化对象;

3)都可以包含抽象方法,其子类必须覆写这些抽象方法


选用:

1)优先用接口,少用抽象类

2)需要定义子类的行为,又要为子类提供共×××时才选用抽象类




5.能够说出使用多态的前提条件

有继承(extends)关系或实现(implements)关系




6.理解多态的转型

举例:父类Person  子类Student

Person p = new Student();//向上转型(自动转换),转换完成后p可访问父类的成员变量,调用子类覆写的成员方法,但不能调用子类特有的成员方法


Student stu = (Student) p;//向下转型,stu可访问子类中的成员变量,可调用父类方法(继承)和子类中的所有方法