在java中什么不能实例化,在Java中,一个类不能被实例化的原因有哪些
今天给各位分享在java中什么不能实例化的知识,其中也会对在Java中,一个类不能被实例化的原因有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
java抽象类不能实例化
很简单,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor,jet,fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
java 为什么接口不能实例化
接口不可以实例化,但是接口对象可以指向它的实现类对象。
接口可以看做特殊的抽象类,只是所有的方法都是抽象方法(没有实现的方法),接口的方法都是默认public abstract的,所以接口不能被实例化。
举个列子:
List Set Map都是接口,使用时先实现他们的类对象:
List<String> list= new ArrayList<>();
Factory接口可以用来代表实现它的类。
比如:
public interface thing;
public class fruit implements thing;
thing something= new fruit();
这个something指的就是水果。
接口编程是为了实现多继承。
在Java中,一个类不能被实例化的原因有哪些
(1)接口
(2)抽象类
(3)构造方法的访问权限为私有
其实并不是不能被实例化,也可以直接在new对象时实现其实例化,比如Student是接口:
Student student= new Student(){
//具体在这里实现接口里的抽象方法
public void setName(){
..........
}
}
大概是在这样吧!至于内部类,应该是可以实例化的,只不过它是依赖外部类的对象来实例化,也就是在实例化内部类对象之前,必须存在外部类的实例化对象。
Java中的抽象类为什么不能实例化
首先抽象类不能实例化是一个java的语法规范。
抽象类中是可以包含抽线方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下又没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须实现父类的所有抽象方法。之所以在java变成中存在这样一个语法规范,就是为了定义这种类型结构来解决生活中这样的一些实际问题。
比如举一个简单例子:
父亲(抽象类)是一个残疾人,他一生都想着要去见义勇(父类的抽象方法)为帮助他人,但是由于自生残疾行动不便,然后他就要求其所有的儿子(继承自抽象类的子类)能实现他的这个愿望(继承父类的抽象方法)。然而每一个儿子在实现父亲想见义勇为这个愿望的时候,每个儿子的做法是不一样的。大儿子喜欢这种方式的见义勇为(子类一有其自己的实现方法),二儿子喜欢其他的见义勇为的方式(子类二有其自己的实现方法)....因此java的抽象类就是用在这种场景中,解决这种问题的。
文章到此结束,如果本次分享的在java中什么不能实例化和在Java中,一个类不能被实例化的原因有哪些的问题解决了您的问题,那么我们由衷的感到高兴!