java面试题38 以下关于 abstract 关键字的说法,正确的是()

java面试题38 以下关于 abstract 关键字的说法,正确的是()

A abstract 可以与final 并列修饰同一个类。
B abstract 类中不可以有private的成员。
C abstract 类中必须全部是abstract方法。
D abstract 方法必须在abstract类或接口中。

蒙蔽树上蒙蔽果,蒙蔽树下你和我。

 抽象一直以来都是人们所神往的艺术形式,这点从梵高,毕加索等艺术家的身上就可以看出。抽象所代表的是一种形式上的美感,颇有一种虚无缥缈只可意会不可言传的意味。但是JAVA中的抽象类与抽象方法相对而言就更加直接了,它给我的感觉更像是文章的副标题,本身不发挥什么作用,但是却可以从中展开许多功能。

  用关键字abstract修饰的类称为abstract类(抽象类),比如:

abstract classA{

}

用关键字abstract修饰的方法称为abstract方法(抽象方法),例如:

abstract int min (int x,int y);

  对于abstract方法只允许声明,不允许实现(因为没有方法体)(毕竟叫抽象,当然不能实实在在的让你实现),并且不允许使用final和abstract同时修饰一个方法或者类,也不允许使用static修饰abstract方法。也就是说,abstract方法只能是实例方法,不能是类方法。

      既然abstract类和方法这么特殊,我们就必须对比一下它和普通类与方法之间的区别了:

1.abstract类中可以有abstract方法

 abstract类中可以有abstract方法,也可以有非abstract方法

 非abstract类中不可以有abstract方法

2.abstract类不能使用new运算符创建对象

但是如果一个非抽象类是抽象类的子类,这时候我们想要创建该对象呢,这时候它就必须要重写父类的抽象方法,并且给出方法体,这也就是说明了为什么不允许使用final和abstract同时修饰一个类或者方法的原因。

重点常考!:final和abstract,private和abstract,static和abstract,这些是不能放在一起的修饰符,因为abstract修饰的方法是必须在其子类中实现(覆盖),才能以多态方式调用,以上修饰符在修饰方法时期子类都覆盖不了这个方法,final是不可以覆盖,private是不能够继承到子类,所以也就不能覆盖,static是可以覆盖的,但是在调用时会调用编译时类型的方法,因为调用的是父类的方法,而父类的方法又是抽象的方法,又不能够调用,所以上的修饰符不能放在一起。

3.abstract类的子类

如果一个非abstract类是abstract类的子类,它必须重写父类的abstract方法,也就是去掉abstract方法的abstract修饰,并给出方法体。

如果一个abstract类是abstract类的子类,它可以重写父类的abstract方法,也可以继承父类的abstract方法。

下面举个例子:

abstract class GirlFriend{                                //抽象类,封装了两个行为标准abstract void speak();abstract void cooking();}
class ChinaGirlFriend extends GirlFriend{void speak(){System.out.println("你好");}void cooking(){System.out.println("水煮鱼");}}
class AmercanGirlFriend extends GirlFriend{void speak(){System.out.println("hello");}void cooking(){System.out.println("roast beef");}}
class boy{GirlFriend friend;void setGirlFriend(GirlFriend f){friend=f;}void showGirlFriend(){friend.speaking();friend.cooking();}}
public class text{public static void main(String args[]){GirlFriend girl =new ChineseGirlFriend();      //这里girl是上转型对象Boy boy=new boy();boy.setGirlFriend(girl);boy.showGirlFriend();girl=new AmericanGirlFriend();             //girl 是上转型对象boy.setGirlFriend(girl);boy.showGirlFriend();}}

1abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖。

2最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写

3抽象类中可以有非抽象方法

4抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中

答案为D

我是歌谣,有什么不合理之处欢迎指出。来,一起刷题走起来

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GridView强制不换行

前提是不能设置GridView的列宽(可以设置表头的宽度代替列宽) 把下面代码加到Me.objGv.DataBind()下面 GridView表头强制不换行objGv.HeaderRow.Style.Add("word-break", "keep-all")GridView内容强制不换行Fori AsInteger0ToobjGv.Rows.Count -1Forj AsInt…

MySQL和SQL Server数据库基本语句总结(二)

接着上面的总结,这一篇主要是MySQL剩下的内容(我用的不多,记下来,防止自己忘记) 1.关于触发器 解释 类似于C中的事件触发,在一个事件发生后会执行里面的代码 (before /after) 语法…

Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较

转发:https://www.cnblogs.com/zx-bob-123/archive/2017/12/26/8118074.html 0. 前言 HashMap和HashTable的区别一种比较简单的回答是: (1)HashMap是非线程安全的,HashTable是线程安全的。 (2)HashMap的…

java面试题39 给定includel.isp文件代码片段,如下

java面试题39 给定includel.isp文件代码片段&#xff0c;如下&#xff1a; <% pageContext.setAttribute(“User”,”HAHA”);%> ______ // 此处填写代码 给定include2.jsp文件代码片段如下&#xff1a; <%pageContext.getAttribute(“User”)%> 要求运行i…

圣诞快乐啊

Let It Snow! Let It Snow! Let It Snow! 原由 *Sakura* 上載 马上就圣诞了&#xff0c;早早祝福大家&#xff0c;圣诞快乐啊&#xff01; 转载于:https://www.cnblogs.com/joypen/archive/2008/12/24/1693224.html

不用AJAX框架实现AJAX效果

AJAX( Asynchronous JavaScript and XML),即&#xff1a;javascript和XML; 是一种进行页面局部异步处理数据的技术&#xff0c;用AJAX向服务器发送请求和获取服务器返回的数据并且更新到界面中&#xff0c;不是整个页面的刷新&#xff0c;而是HTML页面中使用JAVASCRIPT创建XMLH…

Java 面试题及答案

JAVA基础 JAVA中的几种基本类型&#xff0c;各占用多少字节&#xff1f; 下图单位是bit,非字节 1B8bit String能被继承吗&#xff1f;为什么&#xff1f; 不可以&#xff0c;因为String类有final修饰符&#xff0c;而final修饰的类是不能被继承的&#xff0c;实现细节不允许…

java面试题40 当编译并运行下面程序时会发生什么结果()

java面试题40 当编译并运行下面程序时会发生什么结果&#xff08;&#xff09; 1 2 3 4 5 6 7 8 9 10 11 public class Bground extends Thread{ public static void main(String argv[]){ Bground b new Bground(); b.run(); } public void sta…

穷人最缺少的是什么?

法国一位年轻人很穷&#xff0c;很苦。后来&#xff0c;他以推销装饰肖像画起家&#xff0c;在不到十年的时间里&#xff0c;迅速跃身为法国50大富翁之列&#xff0c;成为一位年轻的媒体大亨。不幸&#xff0c;他因患上前列腺癌&#xff0c;1998年在医院去世。他去世后&#xf…

java面试题41 下面字段声明中哪一个在interface主体内是合法的? ()

java面试题41 下面字段声明中哪一个在interface主体内是合法的? &#xff08;&#xff09; A private final static int answer 42; B public static int answer 42; C final static answer 42; D int answer; 1、接口&#xff1a;一种把类抽象的更彻底&#xff0c;接…

java面试题42从以下哪一个选项中可以获得Servlet的初始化参数?

java面试题42从以下哪一个选项中可以获得Servlet的初始化参数? A Servlet B ServletContext C ServletConfig D GenericServlet 蒙蔽树上蒙蔽果&#xff0c;蒙蔽树下你和我 ServletContext对象&#xff1a;servlet容器在启动时会加载web应用&#xff0c;并为每个web应用…

asp.net如何生成图片验证码

新建一个页面image.aspx,添加命名空间&#xff1a; usingSystem.Drawing.Imaging;usingSystem.IO;然后在Page_load事件拷入如下代码&#xff1a; //生成4位的验证码stringtmp RndNum(4); HttpCookie a newHttpCookie("ImageV",tmp); Response.Cookies.Add(a…

Java中如何实现代理机制(JDK、CGLIB)

代理分为两种&#xff1a; 1.静态代理 2.动态代理 动态代理又分为两种&#xff1a;jdk 实现 &#xff1b;Cglib 实现 3.Java中如何实现代理机制(JDK、CGLIB) JDK动态代理&#xff1a;代理类和目标类实现了共同的接口&#xff0c;用到InvocationHandler接口。CGLIB动态代理…

java面试题43要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )

java面试题43要使某个类能被同一个包中的其他类访问&#xff0c;但不能被这个包以外的类访问&#xff0c;可以( ) A让该类不使用任何关键字 B使用private关键字 C 使用protected关键字 D 使用void关键字 答案为A 我是歌谣&#xff0c;如果有什么不合理之处指出。我是歌谣&…

app.config数据库路径问题

最近做一个小东西&#xff0c;用到了subsonic&#xff0c;因为用的是sqlite&#xff0c;数据库的路径问题又被提了上来。在connectionStrings里面只能指定绝对路径。对于sqlite,access这样的数据库来说&#xff0c;却需要使用到相对路径&#xff0c;否则发布后就会出问题。自己…

java面试题44关于 Socket 通信编程,以下描述正确的是:( )

java面试题44关于 Socket 通信编程&#xff0c;以下描述正确的是&#xff1a;&#xff08; &#xff09; A 客户端通过new ServerSocket()创建TCP连接对象 B 客户端通过TCP连接对象调用accept()方法创建通信的Socket对象 C 客户端通过new Socket()方法创建通信的Socket对象 …

Java弱引用(WeakReference)的理解与使用

转:https://blog.csdn.net/zmx729618/article/details/54093532 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept和j…

在VB应用程序中调用Excel2000

Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具&#xff0c;“全球绝大多数Windows应用程序都是用VB开发的”&#xff1b; Excel是目前使用最广泛的办公应用软件之一&#xff0c;它具有强大的数学分析与计算功能&#xff0c;包括很多VB没有的求值数学表达式的函数…

shiro学习(7):shiro连接数据库 方式二

工具idea 先看看数据库 shiro_role_permission 数据 shiro_user shiro_user_role 数据 我们先看一下目录结构 首先 jar包引入 pom.xml文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0&quo…

java中的4种reference的差别和使用场景(含理论、代码和执行结果)

转:https://blog.csdn.net/aitangyong/article/details/39453365 我们知道java语言提供了4种引用类型&#xff1a;强引用、软引用(SoftReference)、弱引用&#xff08;WeakReference&#xff09;和幽灵引用&#xff08;PhantomReference&#xff09;&#xff0c;与引用密切相关…