- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抽象类和接口习题
一、易错概念题
1.以下方法错误的是(A D)
A 覆盖方法包括成员方法的覆盖和成员变量的覆盖 B 成员方法的覆盖是多态的一种表现形式 C 子类可以调用父类中被覆盖的方法 D 任何方法都可以被覆盖 分析:在子类中调用父类方法使用super关键字。super.a() 就可以调用父类的a方法。
在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是不会进行覆盖的。
如果子类本身没有定义使用this关键字可以去访问父类的成员变量。
最后final修饰的方法不能被覆盖 覆盖即重写和重载一起都是多态的表现形式。
(重载、重写和覆盖)
override-重写(=覆盖)、overload-重载、polymorphism - 多态
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则:
1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(publicprotecteddefaultprivate)。
3、重写的方法的返回值类型必须和被重写的方法的返回一致; 4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类; 5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
6、静态方法不能被重写为非静态的方法(会编译出错)。
overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。 重载的规则:
1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
2、不能通过访问权限、返回类型、抛出的异常进行重载; 3、方法的异常类型和数目不会对重载造成影响;
对比:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。
2.下面说法正确的是(C H)
A instanceof 关键字用来判定某个类是否为抽象类。 B final关键字修饰的成员变量不需要初始化。
C 接口的方法都是抽象方法(jdk1.8之前),并且没有方法体
D 当我们继承一个抽象类时,我们必须要实现抽象类的抽象方法。 (X)
E 在向上转型的过程中,如果父类和子类拥有相同的名字的成员方法(非静态)访问的是子类的该方法。如果父类和子类拥有名字的成员变量时,访问的是子类的成员变量。(X)
F 内部类访问外部类方法时,不用创建外部类对象直接访问外部类方法。 G 内部类变量不能设置为static(可以),也不能设置为final H 多态通常用来作为参数传入或者作为返回值返回。
3.下面说法不正确得是(A C D E)
A 不能和abstract一起使用的修饰符有static final public final B 抽象类之间是继承关系,接口之间也是。 C 接口不能存在普通方法和常量
D局部内部类public,private修饰符修饰 default/static E接口不可以直接实例化,抽象类可以
4.下面有那些选项是对的(B C E)
A instanceof是一个二元修饰符,作用是用来判断左边的对象是否是右边类的实例,返回的是布尔类型
B private protected 和static都不可以修饰interface接口(接口的修饰符只有public)
C this.属性名访问的是本类中的属性,如果本类中没有,就从父类中继续查找 D对象是对类的抽象化 E 接口中可以有常量
分析 接口可以有常量(jdk1.8以后) instanceof 是一个二元修饰符,作用是用来判断左边的对象是否是右边类的实例 或者是右边超类的实例 5.以下说法正确的是 ( B ) 对于方法内得形参() A 必须定义多个形参 B 可以没有 C 至少有一个 D 只能是简单变量
6.以下说法正确的是( C )
A 对于局部内部类,不能在class前加任何修饰符(public default private protected)来修饰 (stati
文档评论(0)