![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
善若寺
这个作者很懒,什么都没留下…
展开
-
[Java] 为什么推荐使用Map map = new HashMap() 而不是 HashMap map = new HashMap() ?
Map map = new HashMap();Map是一个接口,HashMap是具体的实现类。由于接口是类的蓝图,是一个抽象的概念,不能被实例化,因此接口需要由具体的类来实现。这条代码指明:由HashMap类来实现接口Map中描述的方法。HashMap map = new HashMap();声明一个HashMap类型的map,由HashMap类实现。为什么更推荐第一种用接口的声明方式?这个问题等同于为什么要在编程中使用接口,而不是直接使用实现类。其实这就是面对对象编程(OOP)的思想精髓。原创 2020-05-13 00:17:38 · 3191 阅读 · 0 评论 -
[Java] Why Deque is better than Stack?
A great explanation about why using Stack is a bad idea.(from LeetCode 341 discussion)1.Object oriented design - Inheritance, abstraction, classes and interfaces: Stack is a class, Deque is an interface. Only one class can be extended, whereas any number原创 2020-05-12 03:16:53 · 237 阅读 · 0 评论 -
Java抽象类可以有构造函数吗?
Java抽象类可以有构造函数吗?可以有,抽象类可以声明并定义构造函数。因为抽象类不可以创建实例,所以抽象类的构造函数只能通过构造函数链调用(Java中构造函数链指的是从其他构造函数调用一个构造函数)。既然不能对抽象类实例化,那么抽象类构造函数的作用是什么?可以用来初始化抽象类内部声明的通用变量,并被各种实现使用。另外,即使没有提供任何构造函数,编译器将为抽象类添加默认的无参数的构造函数,没有的话子类将无法编译,因为在任何构造函数中的第一条语句隐式调用super (),Java中默认超类的构造函数。子原创 2020-05-12 01:20:57 · 1123 阅读 · 0 评论