精华内容
下载资源
问答
  • java面试题38 以下关于 abstract 关键字说法,正确的是() A abstract 可以与final 并列修饰同一个类。 B abstract 类中不可以有private的成员。 C abstract 类中必须全部是abstract方法。 D 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面试题

    展开全文
  • 在Java中,关于final关键字说法,正确的有()。 A)如果修饰变量,则一旦赋了值,就等同一个常量 B)如果修饰类,则该类只能被一个子类继承 C)如果修饰方法,则该方法不能在子类中被覆盖 D)如果修饰方法,则该...

    在Java中,关于final关键字的说法,正确的有()。 
    A)如果修饰变量,则一旦赋了值,就等同一个常量
    B)如果修饰类,则该类只能被一个子类继承
    C)如果修饰方法,则该方法不能在子类中被覆盖
    D)如果修饰方法,则该方法所在的类不能被继承

     

    这道题选C.

    final修饰类中的方法

    作用:可以被继承,但继承后不能被重写。排除D
    final修饰类
    作用:类不可以被继承。排除B

    而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。
    例如:类中有一个属性是final Person p=new Person("name"); 那么你不能对p进行重新赋值,但是可以改变p里面属性的值,p.setName('newName');排除A

    展开全文
  • 关于c++的inline关键字,以下说法正确的是() A:使用inline关键字的函数会被编译器在调用处展开 B:头文件中可以包含inline函数的声明 C:可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数 D:定义在...

    关于c++的inline关键字,以下说法正确的是()
    A:使用inline关键字的函数会被编译器在调用处展开
    B:头文件中可以包含inline函数的声明
    C:可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数
    D:定义在Class声明内的成员函数默认是inline函数
    E:优先使用Class声明内定义的inline函数
    F:优先使用Class实现的内inline函数的实现

    解析:
    A 项错误,因为使用 inline 关键字的函数只是用户希望它成为内联函数,但编译器有权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。

    B 项错误,头文件中不仅要包含 inline 函数的声明,而且必须包含定义,且在定义时必须加上 inline 。关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用。

    C 项错误, inline 函数可以定义在源文件中,但多个源文件中的同名 inline 函数的实现必须相同。一般把 inline 函数的定义放在头文件中更加合适。

    D 项正确,类内的成员函数,默认都是 inline 的。定义在类声明之中的成员函数将自动地成为内联函数。

    EF 项错误, class 的成员函数都是 inline 的,加了关键字 inline也没有优先问题。

    展开全文
  • 以下关于final关键字说法错误的是(A,C)(两项) A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性 B) final修饰的类肯定不能被继承 C) final修饰的方法不能被重载 D) final修饰的变量不允许被...

    以下关于final关键字说法错误的是(A,C)(两项)

    A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
    B) final修饰的类肯定不能被继承
    C) final修饰的方法不能被重载
    D) final修饰的变量不允许被再次赋值

     

    一、final关键字可以用来修饰类、方法、变量。各有不同。

    A、修饰类(class)。 
         1、该类不能被继承。 
         2、类中的方法不会被覆盖,因此默认都是final的。 
         3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不允许被改变,那么就设计成final类

    B、修饰方法(method) 
         1、该方法可以被继承,但是不能被覆盖。 
         2、用途:一个类不允许子类覆盖该方法,则用final来修饰 
         3、好处:可以防止继承它的子类修改该方法的意义和实现;更为高效,编译器在遇到调用fianal方法转入内嵌机制,提高了执行效率。 
         4、注意:父类中的private成员方法不能被子类覆盖,因此,private方法默认是final型的(可以查看编译后的class文件)

    C、修饰变量(variable) 
         1、用final修饰后变为常量。包括静态变量、实例变量和局部变量这三种。 
         2、特点:可以先声明,不给初值,这种叫做final空白。但是使用前必须被初始化。一旦被赋值,将不能再被改变。

    D、修饰参数(arguments) 
         1、用final修饰参数时,可以读取该参数,但是不能对其作出修改

    二、final关键字不能用来抽象类和接口。

    转载于:https://my.oschina.net/u/3422045/blog/1302554

    展开全文
  • c++关键字

    2018-06-11 10:12:10
    定义内联函数,该关键字是基于定义的。如果只在函数声明时给出inline,则函数不会被认为是内联函数,所以必须在函数定义的地方也加上inline。其主要特性: 一个函数若声明inline,则每处声明都必须保证是inline,...
  • final关键字

    2017-05-20 20:11:00
    final关键字: 1.final关键字可以用来修饰类,属性,方法 2.final关键字修饰的类不能再被继承。比如:String String类是final修饰类,不能被继承 3.final关键字修饰的方法,不能再被子类重写 4.final关键字修饰...
  • volatile关键字

    2019-04-16 22:53:57
    首先,volatile是C语言的关键字,用于修饰变量,为什么汇编语言没有volatile,因为汇编语言根本不存在变量的概念,只有地址和标号的说法。所以,volatile其实是给编译器下发的一个命令。 其次,volatile英文含义是...
  • Swift关键字总结上篇

    千次阅读 2017-12-24 20:41:13
    Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数字符号#开头的关键字, 以及特定上下文环境使用的关键字。 本文中涉及的代码...
  • 关键字const

    2017-02-05 21:37:00
    关键字const有什么含意?下面的声明都是什么意思? 解析:只要一听到被面试者说“const意味着常数”,面试官就知道自己正在和一个业余者打交道。因为ESP(Embedded Systems Programming,嵌入式系统编程)的每一...
  • C++ virtual关键字

    千次阅读 多人点赞 2017-08-14 19:25:02
    之前始终没有搞清楚C++中 “virtual” 关键字的用法。 静态函数可以声明为虚函数吗 构造函数可以为虚函数吗 析构函数可以为虚函数吗 虚函数可以为私有函数吗 虚函数可以被内联吗 纯虚函数与抽象类
  • voliatile关键字

    千次阅读 2016-04-20 20:39:57
    啃书的时候,发现了这个关键字, 以前都没有听过!唉,我真是孤陋寡闻啊。。。 C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ ...
  • volotile关键字

    2018-03-19 23:05:13
    原文:... C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 vo...
  • const关键字

    2018-03-25 16:45:19
    const关键字的作用: 1. 可以定义const常量,具有不可变性 2. 便于进行类型检查 3. 保护被修饰的东西,防止意外修改 4. 为函数重载提供了参考 void fun(int i){} void fun(int i)const{}//是上面函数的重载...
  • C语言关键字

    千次阅读 2016-04-19 11:14:44
    auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。auto int a=4;表示a为一个自动存储的临时变量。 作用:C程序是面向过程的,在C代码中会出现大量的函数模块,每个函数都有其生命周期(也称...
  • Override关键字

    2019-09-03 16:45:36
    描述 :override保留字表示当前派生类函数 重写 了基类的虚函数。使用override 有助于防止代码中出现意外的继承行为。 目的 :1、强制编译器 ...某个函数是否覆盖成功,...// 错误,形参不同了无法覆盖。 }  
  • static关键字

    2019-03-25 10:20:49
    简单使用:(主要说说修饰的方法) static能修饰变量和方法 ,但是static修饰的变量和方法是属于类的而不是属于类的对象。 static修饰的方法称为静态方法,在本类中调用克直接写方法名(有参数可以带参数)。...
  • C语言关键字解析

    2015-03-11 10:24:10
    C语言关键字解析 C语言关键字有32个,如表1所示。虽然简单,但还是让一些初学者犯错,譬如sizeof,好多初学者都认为是函数,其中包括我的一些同学,他们学过有好多年了,如此看来,有时我们追求高深的内容,往往会...
  • C++关键字总结

    千次阅读 2017-06-30 20:35:03
    参考了export关键字的用法 和 export关键字 和 浅析C语言的一个关键字——register和C++ operator两种用法和C++11特性:auto关键字(1)explicit关键字 首先, C++中的explicit关键字只能用于修饰只有一个参数的类...
  • inline 关键字

    2012-05-06 15:02:52
    inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。  表达式形式的宏定义一例:  #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要...
  • explicit关键字详解

    2020-08-13 14:37:24
    C++ explicit关键字详解 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认...
  • final关键字的使用.mp4

    2020-04-23 10:07:25
    final关键字的使用f
  • java中,StringBuilder和StringBuffer的区别,下面说法错误的是? AStringBuffer是线程安全的 BStringBuilder是非线程安全的 CStringBuffer对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,...
  • java final 关键字

    2017-12-19 06:20:42
    java - final 关键字 java - final 关键字 在 java 中,final 关键字可以修饰类,方法和变量。被 final 修饰通常指“这是无法改变的”。 1. final 数据 可以分为两种情况: 一个永不改变的编译时常量 一个在运行时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,440
精华内容 13,376
关键字:

关键字的说法错误的