码迷,mamicode.com
首页 > 其他好文 > 详细

接口--多态

时间:2017-07-05 23:38:04      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:部分   使用   extend   优先   避免   ace   开发   扩展   nbsp   

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)是否提供实现方法:抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码复用性;接口只能包含抽象方法(java7及以前);
2)继承与实现:接口可以同时继承多个接口;一个类只能继承一个直接父类(可以为抽象类),却可以实现多个接口(弥补了单继承的局限);
3)共性与扩展:抽象类为继承体系中的共性内容,接口为继承体系中的扩展功能.

相同:
1)顶端:都位于继承的顶端,用于被其他类实现或继承;
2)实例化对象:都不能直接实例化对象;
3)抽象方法:都可以包含抽象方法,其子类必须覆写这些抽象方法

选用:
1)优先用接口,少用抽象类
2)需要定义子类的行为,又要为子类提供共性功能时才选用抽象类


5.能够说出使用多态的前提条件
有继承(extends)关系或实现(implements)关系


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

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

7.理解多态
java引用变量有两个类型:一是编译时类型,一是运行时类型。编译时类型由声明该变量时使用的类型决定;运行时类型由实际引用的对象决定。如果编译时类型与运行时类型不一致,就可能出现多态(Polymorphism)。方法的重载/覆写,实例化对象的转型等都属于多态的范畴。

接口--多态

标签:部分   使用   extend   优先   避免   ace   开发   扩展   nbsp   

原文地址:http://www.cnblogs.com/huguangqin/p/7124005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!