精华内容
下载资源
问答
  • 抽象类使用 final 修饰吗?

    千次阅读 2019-07-22 15:21:19
    这个题目主要就是考察抽象类和final修饰符的特性。 抽象类的就是要子类继承然后实现内部方法的。但是final修饰的类是不能再被继承和修改的。所以不能final修饰。 关于抽象类可以看一下我的另一篇博客:...

    答案:不能

    这个题目主要就是考察抽象类和final修饰符的特性。

    抽象类的就是要子类继承然后实现内部方法的。但是final修饰的类是不能再被继承和修改的。所以不能用final修饰。

     

    关于抽象类,可以看一下我的另一篇博客:https://blog.csdn.net/qq_35771266/article/details/96852793

    里面有对抽象类的讲解,我就不再重新写一次了。

    展开全文
  • 不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类

    不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类

    展开全文
  • 普通类和抽象类之间的区别? 接口和抽象类之间的区别?

    1、普通类和抽象类之间的区别?

    抽象类是包含抽象方法的类,其中的某些方法声明为abstract来表示一个类是抽象类。抽象类是一种模板模式,子类可以在这个模板上进行扩展。抽象类的存在还可以避免子类设计的随意性。实现了代码设计与实现的分离。

    (1)抽象类不可以被实例化,不可以new一个实例化对象。
    (2)只要有抽象方法的类,必须定义成抽象类。
    (3)抽象类可以包含属性、方法、构造方法。但是构造方法只能被子类调用,不可以用来实例化对象。
    (4)抽象类只能用来继承,并且子类必须重写其抽象方法,除非子类自身也是抽象类。

    注:抽象类中可以有普通方法。抽象方法只有方法声明,没有方法体。

    2、接口和抽象类之间的区别?

    接口和抽象类是支持抽象类定义的两种机制。
    抽象类是包含抽象方法的类,其中的某些方法声明为abstract来表示一个类是抽象类。
    接口是指一个方法的集合,其中所有的方法都没有方法体,通过关键字implements来实现。接口中只有常量和抽象方法。
    相同点(2点):
    (1)抽象类和接口都不能被实例化。
    (2)抽象类的子类和接口的实现类都只有在实现了抽象类或者接口中的方法之后才可以被实例化。

    不同点(6点):
    (1)方法的定义与实现。
    java8之前,接口只能定义方法,不能实现,只有实现接口的实现类可以实现方法。但是抽象类中的方法可以有定义+实现。
    (2)实现与继承。
    接口实现用implements,抽象类只能用继承extends。一个类可以实现多个接口,但是只能继承一个抽象类。因此接口可以间接达到多重继承的目的。
    (3)设计理念。
    接口强调功能的实现,设计理念:has——a;抽象类强调所属关系,设计理念:is——a。
    (4)成员变量的不同点。
    接口中成员变量默认为public static final,只能有静态的不能被修改的数据成员,而且必须给其赋初始值。
    抽象类可以有自己的数据成员变量。抽象类中的成员变量默认为default,当然也可以被定义为public、protected和private,这些成员变量可以在子类中被重新定义,也可以被重新赋值。
    (5)成员方法的不同点。
    接口中的成员方法都只能是public abstract的,且只能被这两个关键字修饰。
    抽象类中可以有非抽象的成员方法。抽象类的抽象方法(前有abstract修饰)不能用private、static、synchronized、native等修饰符修饰。同时必须以分号结尾,不能有花括号。
    (6)应用方面。
    接口被运用于比较常见的功能,便于日后维护或者增加删除方法。
    抽象类更倾向于充当公共角色,不适用于日后重新对里面的代码进行修改。

    其他说明:
    接口是一种特殊的抽象类。接口可以继承接口。
    抽象类可以实现接口,抽象类也可以继承具体类。抽象类可以有静态的main方法。

    3、抽象类必须要有抽象方法吗?

    (1)抽象类一定有abstract修饰。
    (2)抽象类不一定要有抽象方法。
    (3)有抽象方法的类一定是抽象类。

    4、抽象类能使用final修饰吗?

    不可以。
    用final修饰的类不可以被继承。
    抽象类是一种模板模式,子类可以在这个模板上进行扩展。抽象类的存在还可以避免子类设计的随意性。实现了代码设计与实现的分离。就是要通过子类的继承实现其中的抽象方法。而final修饰抽象类的做法违背了抽象类的初衷。

    展开全文
  • 一:接口中可用的修饰符  1:在成员变量zh

    一:接口中可用的修饰符

        1:在成员变量中,可用的修饰符有public,final,static.

        2:在方法中,可用的修饰符有public,abstract.

    注解:接口是一种标准,是实现java多态的一种重要机制,使用接口意味着对外暴露内部的标准,别人通过实现接口来实现它的标准,所以在接口中自然不能用protected和private这些有保护性质的修饰符。

    二:抽象类中的修饰符

    1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法用static修饰没有意义;使用synchronized关键字是为该方法加一个锁。。而如果该关键字修饰的方法是static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以。锁应该归其子类所有。所以。抽象方法也就不能用synchronized关键字修饰了;native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?

    展开全文
  • 抽象类中不能有static,final,private修饰的方法 1. 抽象类中不能有static修饰的方法。 打个比方: 被static修饰的方法在和没有static修饰的方法在内存中的位置不一样。。 被static修饰的方法属于类,是类自己的...
  • 1、抽象类中的抽象方法(其前有abstract修饰)不能private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名...
  • 1. 抽象类中不能有static修饰的方法。 打个比方: 被static修饰的方法在和没有static修饰的方法在内存中的位置不一样。。 被static修饰的方法属于类,是类自己的东西,不是给子类来继承的。就好像类是个房子,它的...
  • 抽象类和接口的修饰

    千次阅读 2017-09-05 18:50:23
    1、抽象类中的抽象方法(其前有abstract修饰)不能private、static、synchronized、native访问修饰符修饰。 原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过...
  • 使用abstract修饰修饰的类被称为抽象类 抽象类不能实例化对象,只能被继承。 抽象类和抽象方法都通过abstract关键字来修饰 示例如下: /** * 交通工具的抽象类 */ public abstract class Traffic { } 什么...
  • 抽象类中不能有static,final,private修饰的方法 1. 抽象类中不能有static修饰的方法。 打个比方: 被static修饰的方法在和没有static修饰的方法在内存中的位置不一样。。被static修饰的方法属于类,是类自己的...
  • Java基础-抽象类与static修饰符 static 修饰符 static修饰可以修饰属性、方法、内部类。而经过static修饰的属性和方法都会随着类加载时进行初始化加载,当其他类想使用被static修饰修饰过的方法时可以直接...
  • 原因:因为抽象类可以有自己方法实现,自己方法的实现可能会用到自己的私有变量。可以通过自身公有方法调用自身的私有方法。 接口 接口中只能有全局常量和公共的抽象方法,不能有private属性和方法。
  • 目录 抽象类 和 抽象成员 成员访问修饰抽象类 和 抽象成员 抽象成员是一个被设计为被覆写的成员函数, 抽象成员有如下特征: ...抽象类只能被继承,不能创建抽象类的实例,抽象类的cla...
  • 可以抽象方法存在的目的就是被子重写,而private的方法是不能被子重写的,所以不能修饰可以抽象方法存在的目的就是被子重写,而的方法是不能被子重写的,所以不能修饰可以抽象方法存在的...
  • 1、抽象类中的抽象方法(其前有abstract修饰)不能private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名...
  • 原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法static修饰没有意义;使用synchronized关键字是为该方法加一个...
  • 1 抽象方法必须放在抽象类中,抽象类中的方法可以不是抽象方法,抽象方法由子类进行实现。 抽象方法abstract修饰,没有函数体,空函数体也不行。 2 抽象类可以有构造器,但是不可以进行实例化。在创建子类构造...
  • 有抽象方法的类叫做抽象类abstract修饰 父类定义抽象的方法,由子类来实现 抽象的方法不能有方法体,直接;结束 抽象类不能直接实例化,使用非抽象子类 抽象类可以没有抽象的方法,非抽象的类不能有抽象的方法...
  • 1.抽象类:被abstract关键字修饰的类称为抽象类 抽象类不能实例化对象,只能够被继承之后创建子类的对象 2.抽象方法:被abstract关键字修饰的方法称为抽象方法 抽象方法不能有方法体,即不能有{},子类必须重写抽象...
  • 抽象类可以继承实体类吗?

    千次阅读 2018-04-24 03:03:56
    举例:java中object是一个实体类,其他的类包括抽象类大多继承object。但是有一个前提条件是实体类必须有明确的构造函数。什么是明确的构造函数?首先要了解java的继承:子类继承父类的所有但是不包括父类构造,子类...
  • 抽象类和抽象方法 下面让我们来理解一下抽象类和抽象方法吧: ...这就需要运用到Java中的抽象类来实现,abstract来修饰Pet类,抽象类就不能通过new实例化。 代码如下: public abstract class Pe...
  • Java面向对象基础–抽象类、接口、访问修饰符 一、抽象类 定义: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个...
  • JDK 1.8以前,抽象类的方法默认访问权限为protected(可以是public和protected) JDK 1.8时,抽象类的方法默认访问权限变为默认访问权限(可以是public和protected或者不写) 接口方法 JDK 1.8以前,接口中的方法...
  • 当多个类中出现相同功能,...3, 抽象类可以用new创建对象。因为调用抽象方法没有意义。 4, 抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。 如果子类只覆盖了部分抽象方法,那么...
  • 文章目录一、前言二、修饰符2.1 修饰符作用2.2 类修饰符2.3 变量修饰符2.4 方法修饰符三、 接口与抽象类的区别3.1 抽象类3.2 接口3.3 区别四、 小结&参考资料小结参考资料 一、前言 对于刚入门的小白来说,...
  • 抽象类

    2021-04-11 14:47:12
    abstract关键字修饰的类,这个类就是抽象类。 访问修饰符 abstract 类名{} 什么是抽象方法 abstract关键字修饰的方法,并没有具体的实现,这个方法就是抽象方法。 访问修饰符 abstract 返回类型 方法名(参数...
  • java中抽象类与接口中方法访问修饰符问题
  • https://blog.csdn.net/qq_29440353/article/details/89091681 ... 抽象类中不能有static修饰的方法。 打个比方: 1. 被static修饰的方法在和没有static修饰的方法在内存中的位置不一样。。 2. 被stat...
  • 抽象类可以继承具体类吗?

    千次阅读 2018-03-04 10:51:45
    面试题的本身的答案是可以,但实体必须要有明确的构造函数,翻译一下就是前提是父类必须拥有抽象子类能够获取到的构造函数。测试如果把实体的构造函数修饰符写为private则无法通过编译,如果写为public 则通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,582
精华内容 50,632
关键字:

抽象类可以用private修饰吗