精华内容
下载资源
问答
  • [多选]下列关于抽象类说法错误的是 A 有抽象方法一定有抽象类 B 抽象类必须由抽象方法 C 抽象类没有构造方法 D 抽象类可以new直接实例化 个人参考答案: BCD知识点基础知识用法扩展抽象类与接口区别

    京东2017实习生招聘 Java方向
    [多选]下列关于抽象类说法错误的是
    A 有抽象方法一定有抽象类
    B 抽象类必须由抽象方法
    C 抽象类没有构造方法
    D 抽象类可以new直接实例化

    个人参考答案: BCD


    知识点

    基础知识用法

    这里写图片描述

    扩展

    抽象类与接口区别

    这里写图片描述
    这里写图片描述

    这里写图片描述

    展开全文
  • 关于抽象类的描述

    千次阅读 2018-07-11 14:44:59
    1、在抽象类中,初始化变量后不可再在抽象类中进行赋值或者是操作该变量,要想操作此变量则在其子类进行操作2、在抽象类中,可以声明一个抽象方法也可以声明一个普通方法。但声明抽象方法时不可在本类对其实现...

    1、在抽象类中,初始化变量后不可再在抽象类中进行赋值或者是操作该变量,要想操作此变量则在其子类中进行操作

    2、在抽象类中,可以声明一个抽象方法也可以声明一个普通方法。但声明抽象方法时不可在本类中对其实现(即没有方法体)。有抽象方法的一定是抽象类,但是在抽象类中不一定有抽象方法。

    3、抽象类可以被实例化(多态),但是实例化后不一定有意义。


    展开全文
  • 关于C++/JAVA类中static 成员和对象成员的说法正确的是? A. static 成员变量在对象构造时生成 B. static 成员函数在对象成员函数无法调用 C. 虚成员函数不可能是static 成员函数 D. static 成员函数不能访问...

    题目

    关于C++/JAVA类中static 成员和对象成员的说法正确的是?
    A. static 成员变量在对象构造时生成
    B. static 成员函数在对象成员函数中无法调用
    C. 虚成员函数不可能是static 成员函数
    D. static 成员函数不能访问static 成员变量

    答案

    C

    解析

    虚函数是C++中的概念,在java语言中虚函数指代的就是抽象方法。
    抽象方法中不能用private,static, synchronized,native等修饰词修饰。

    展开全文
  • Java笔试面试-抽象类与接口

    万次阅读 多人点赞 2019-09-15 22:29:50
      在面向对象的概念,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。简单来说,使用关键字 ...

    抽象类

    定义:
      在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。简单来说,使用关键字 abstract 修饰的类就叫做抽象类。
    使用:

    abstract class AbstractAnimal {
        public AbstractAnimal() {
            System.out.println("Init AbstractAnimal.");
        }
        static String name = "AbstractAnimal";
        public abstract void eat();
        public void run() {
            System.out.println("AbstractAnimal Run.");
        }
    }
    class Animal extends AbstractAnimal {
        public static void main(String[] args) {
            AbstractAnimal animal = new Animal();
            animal.run();
            System.out.println(animal.name);
            animal.eat();
        }
      // 必须重写抽象父类方法
        @Override
        public void eat() {
            System.out.println("Animal Eat.");
        }
    }
    

    执行的结果:

    Init AbstractAnimal.
    AbstractAnimal Run.
    AbstractAnimal
    Animal Eat.
    

    抽象方法:
      使用 abstract 关键字修饰的方法叫做抽象方法,抽象方法仅有声明没有方法体。如下代码:

    public abstract void m();
    

    抽象类的特性:

    • 抽象类不能被初始化
    • 抽象类可以有构造方法
    • 抽象类的子类如果为普通类,则必须重写抽象类中的所有抽象方法
    • 抽象类中的方法可以是抽象方法或普通方法
    • 一个类中如果包含了一个抽象方法,这个类必须是抽象类
    • 子类中的抽象方法不能与父类中的抽象方法同名
    • 抽象方法不能为 private、static、final 等关键字修饰
    • 抽象类中可以包含普通成员变量,访问类型可以任意指定,也可以使用静态变量(static)

    接口

    定义:
      接口(interface)是抽象类的延伸,它允许一个类可以实现多个接口,弥补了抽象类不能多继承的缺陷,接口是对类的描述,使用 interface 关键字来声明。
    使用:

    interface IAnimal {
        void run();
    }
    class AnimalImpl implements IAnimal {
        public static void main(String[] args) {
            IAnimal animal = new AnimalImpl();
            animal.run();
        }
        @Override
        public void run() {
            System.out.println("AnimalImpl Run.");
        }
    }
    

    相关面试题

    1.抽象类中能不能包含方法体?
    答:抽象类中可以包含方法体。抽象类的构成也可以完全是包含方法体的普通方法,只不过这样并不是抽象类最优的使用方式。

    题目解析:包含了方法体的抽象类示例代码如下:

    abstract class AbstractAnimal {
        public void run() {
            System.out.println("AbstractAnimal Run.");
        }
    }
    class Animal extends AbstractAnimal {
        public static void main(String[] args) {
            AbstractAnimal animal = new Animal();
            animal.run();
        }
    }
    

    执行结果:
    AbstractAnimal Run.

    2.抽象类能不能被实例化?为什么?
    答:抽象类不能被实例化,因为抽象类和接口的设计就是用来规定子类行为特征的,就是让其他类来继承,是多态思想的一种设计体现,所以强制规定抽象类不能被实例化。

    3.抽象方法可以被 private 修饰吗?为什么?
    答:抽象方法不能使用 private 修饰,因为抽象方法就是要子类继承重写的,如果设置 private 则子类不能重写此抽象方法,这与抽象方法的设计理念相违背,所以不能被 private 修饰。

    4.添加以下哪个选项不会引起编译器报错?

    abstract class AbstractAnimal {
        static String animalName = "AbstractAnimal";
          // 添加代码处
    }
    

    A:protected abstract void eat();
    B: void eat();
    C:abstract void eat(){};
    D:animalName += “Cat”;

    答:A

    题目解析:选项 B 普通方法必须有方法体;选项 C 抽象方法不能有方法体;选项 D 变量赋值操作必须在方法内。

    5.以下关于抽象类和抽象方法说法正确的是?
    A:抽象类中的方法必须全部为抽象方法
    B: 抽象类中必须包含一个抽象方法
    C:抽象类中不能包含普通方法
    D:抽象类中的方法可以全部为普通方法(包含方法体)

    答:D

    题目解析:抽象类中可以没有方法或者全部为普通方法,都是允许的,如下代码所示:

    abstract class AbstractAnimal {
        public void run() {
            System.out.println("AbstractAnimal Run.");
        }
    }
    class Animal extends AbstractAnimal {
        public static void main(String[] args) {
            AbstractAnimal animal = new Animal();
            animal.run();
        }
    }
    
    

    程序执行的结果为:

    AbstractAnimal Run.
    

    6.接口和普通类有什么关系?
    答:在 Java 语言设计中,接口不是类,而是对类的一组需求描述,这些类必须要遵循接口描述的统一格式进行定义。

    7.接口能不能有方法体?
    答:JDK 8 之前接口不能有方法体,JDK 8 之后新增了 static 方法和 default 方法,可以包含方法体。

    8.执行以下代码会输出什么结果?

    interface IAnimal {
        static String animalName = "Animal Name";
    }
    class AnimalImpl implements IAnimal {
        static String animalName = new String("Animal Name");
        public static void main(String[] args) {
            System.out.println(IAnimal.animalName == animalName);
        }
    }
    

    答:执行的结果为 false。

    题目解析:子类使用 new String… 重新创建了变量 animalName,又因为使用 == 进行内存地址比较,所以结果就是 false。

    9.抽象类和接口有什么区别?
    答:抽象类和接口的区别,主要分为以下几个部分。

    • 默认方法
    • 抽象类可以有默认方法的实现
    • JDK 8 之前接口不能有默认方法的实现,JDK 8 之后接口可以有默认方法的实现
    • 继承方式
    • 子类使用 extends 关键字来继承抽象类
    • 子类使用 implements 关键字类实现接口
    • 构造器
    • 抽象类可以有构造器
    • 接口不能有构造器
    • 方法访问修饰符
    • 抽象方法可以用 public / protected / default 等修饰符
    • 接口默认是 public 访问修饰符,并且不能使用其他修饰符
    • 多继承
    • 一个子类只能继承一个抽象类
    • 一个子类可以实现多个接口

    10.以下抽象方法描述正确的是?
    A:抽象方法可以是静态(static)的
    B:抽象方法可同时是本地方法(native)
    C:抽象方法可以被 synchronized 修饰
    D:以上都不是

    答:D

    题目解析:抽象方法需要被子类重写,而静态方法是无法被重写的,因此抽象方法不能被静态(static)修饰;本地方法是由本地代码实现的方法,而抽象方法没有实现,所以抽象方法不能同时是本地方法;synchronized 和方法的实现细节有关,而抽象方法不涉及实现细节,因此抽象方法不能被 synchronized 修饰。

    展开全文
  • //含有抽象方法的类一定是抽象类,但是抽象类中不一定要有抽象方法 abstract class An{  abstract public void f();//没有方法体的方法叫做抽象方法,必须用abstract修饰,如果有抽象方法,该类一定是抽象类  /...
  • 下列内部类的说法正确的是(c)。 A 内部类的类名只能在定义它的类或程序或在表达式...C 内部类不可以用abstract修饰符定义为抽象类 D 内部类可作为其他类的成员,而且可访问它所在类的成员 C ...
  • 关于抽象类的讨论

    2007-04-11 19:22:00
    何时使用抽象类当需要一组相关组件来包含一组具有相同功能的方法,但同时要求在其他方法实现具有灵活性时,可以使用抽象类。当预料可能出现版本问题时,抽象类也具有价值,因为基类比较灵活并易于被修改。有关详细...
  • A:static成员变量在对象构造时候生成 ...答案:c 解释,(1)类的static成员变量属于该抽象类,需要在类定义时初始化,不可以在对象的构造函数初始化。(2) static成员函数在对象成员函数可以调用,同属于
  • Java为什么要使用抽象类

    千次阅读 2016-07-14 16:33:59
    抽象类 抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:1)类可以实现无限个接口,但仅能从一个抽象(或任何其他...3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口的成员变量
  • 以下选项中关于Java文件中输入输出的说法正确的是() A、在Java中,文件的输入输出功能是通过流来实现的 B、如果要把数据写入到一个文件中,需要创建一个输入流对象 C、字符流在某些方面比如汉字的处理,比字节流更...
  • java面试题38 以下关于 abstract 关键字的说法正确的是() A abstract 可以与final 并列修饰同一个。 B abstract 类中不可以有private的成员。 C abstract 类中必须全部是abstract方法。 D abstract ...
  • 下面关于抽象类和抽象方法的说法中,错误的是 A 抽象类可以包含非抽象方法 B 抽象类可以包含接口方法 C 抽象类可以包含抽象方法 D 抽象类不可以被实例化 (2)单选题 下面哪些是合法的抽象类定义 Aabstract A {...
  • 以举例的方式说到如何区分抽象类和接口,这里我们从Java语法谈起,使我们更加了解这两者的内在区别。... 4)在接口凡是变量必须是public static final,而在抽象类中没有要求。 忽然有此一文,是因为同学疑...
  • 关于AWT和Swing说法正确的是? A Swing是AWT的子类 B AWT在不同操作系统显示相同的风格 C AWT不支持事件类型,Swing支持事件模型 D Swing在不同的操作系统显示相同的风格 AWT和Swing都是java的包。 ...
  • 面试题--抽象类和接口的区别

    千次阅读 2016-06-10 09:38:43
    下述说法中抽象类与接口的区别正确的有哪些? 正确答案: A B C A.抽象类中可以有普通成员变量,接口没有普通成员变量。 B.抽象类和接口中都可以包含静态成员变量。 C.一个类可以实现多个接口,但只能继承一个...
  • Java中抽象类和接口有构造方法吗?

    千次阅读 2019-07-07 11:36:06
    (1)Java中抽象类和接口有构造方法吗? ①在接口 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。 A. 构造方法用于初始化成员变量,但是接口成员变量是常量,...
  • 在C++语言,以下说法正确的是()正确答案: A D 你的答案: A B C (错误)多态是通过虚表实现的构造函数可以声明为虚函数析构函数不可以声明为虚函数抽象类中至少包含一个纯虚函数C++ 的虚函数的作用主要是实现了...
  • 通过接口抽象类“创建”对象

    千次阅读 2018-08-21 21:36:24
    首先声明,用接口或者抽象类实例化一个对象是不可能的,错误的。 接口、抽象类实现注意点 Interface 属性默认都是 public static final 方法默认都是 public abstract 都不用显示声明 抽象类 至少含有一个...
  • 下述说法中抽象类与接口的区别正确的有哪些? A 抽象类中可以有普通成员变量,接口没有普通成员变量。 B 抽象类和接口中都可以包含静态成员变量。 C 一个类可以实现多个接口,但只能继承一个抽象类 D 抽象...
  • C++抽象类小览

    千次阅读 2015-08-02 09:23:51
    virtual 方法和 virtual 可以说是c++语言的一大特性,甚至有人说是c++语言的精髓,其实这么说也是有一定道理的,因为运行时多态在c++体现淋漓尽致,而 virtual 就是为多态服务的。这也是一个一定要搞懂的c++问题...
  • 抽象类+接口+内部类作业题

    千次阅读 2018-06-28 17:21:28
    抽象类+接口+内部类作业题一、 选择题1.Person类和Test类的代码如下所示,则代码的错误语句是( c )。(选择一项) public class Person {public String name;public Person(String name) {this.name = ...
  • 实用抽象类和接口的区别

    千次阅读 2016-09-29 20:39:26
    抽象类和接口又什么好处从这个问题我们可以衍生出两个问题:1.为什么要用抽象类?2. 为什么要使用接口?企业单位在面试的时候经常会问到!答案综合考虑以下方面:1:强调不但应该具有什么能力,而且应该具有什么特性...
  • 1.以下方法错误的是(A D) A 覆盖方法包括成员方法的覆盖和成员变量的覆盖 B 成员方法的覆盖是多态的一种...在继承或者接口实现过程就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接
  • 一、抽象类、抽象方法1、抽象类抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。 1. 被abstract关键字修饰的类叫抽象类 ...
  • Java中抽象类、接口、包的文档练习

    千次阅读 2014-07-28 22:22:29
    。一、选择题 1. 实现接口的类修饰不可以是( ) ...2. 下面程序定义了一个类,关于类说法正确的是( ) abstract classabstractClass{ …… } A. 该类能调用new abstractClass(),方法实例化为一个对象
  • 1.jdk1.8,下面有关java 抽象类和接口的区别,说法错误的是? 正确答案: B D A.抽象类可以有构造方法,接口不能有构造方法 B. 抽象类中可以包含非抽象...2.下述说法中抽象类与接口的区别正确的有哪些? 正确答案...
  • Java 接口和抽象类

    千次阅读 2016-05-15 00:36:20
    6、“抽象类不可以被抽象类继承”的说法是否正确? 错误! 7、抽象类可以不包含任何抽象方法? 正确 8、抽象方法可以使用private修饰吗? 不可以! protected public 默认权限 9、...
  • 接口(interface)可以说成是抽象类的一种特例,接口的所有方法都必须是抽象的。接口的方法定义默认为public abstract类型,接口的成员变量类型默认为public static final 1. 抽象类可以有构造方法,接口不...
  • CD 子类必须重载父类里的虚函数 子类必须重载父类里的纯虚函数 虚基类的构造函数在非虚基类之前调用(最终继承类构造函数,成员初始化列表同时出现对虚...父类有纯虚函数,子类可以不实现,此时子类仍是抽象类。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,947
精华内容 10,778
关键字:

关于抽象类的说法中正确的是