什么样的抽象类不能产生类的实例(怎么定义抽象类)?

作者&投稿:党鹏 (若有异议请与网页底部的电邮联系)
~

抽象类是一种不能被实例化的类,在Java中,抽象类用abstract关键字来修饰。下面是定义抽象类的基本规则:

  1. 抽象类必须用abstract关键字来声明。

  2. 抽象类可以包含普通方法和抽象方法,普通方法具有实现代码,但是抽象方法没有。

  3. 如果一个类继承了抽象类,则必须实现该抽象类中所有的抽象方法。否则,这个类也必须声明成抽象类。

  4. 抽象类可以有构造函数,但是它不能被用来创建对象,只能被子类调用。

  5. 抽象类可以拥有变量,可以是常量或者是静态变量,但是不能拥有非静态的属性。

在Java中,如果出现下面两种情况之一,那么这个抽象类就不能被实例化:

  1. 抽象类中没有声明抽象方法

abstract class Example {

int number;

void display() {

System.out.println("This is a display method.");

}

}

2. 子类没有实现父类中的所有抽象方法

abstract class Example {

abstract void show();

}

class SubExample extends Example { // 必须实现父类中的所有抽象方法

void show() {

System.out.println("This is the implementation of the show method.");

}

}




c#中的工厂模式的好处
用静态方法出错的原因:应该是你的程序没设计好。工厂模式的好处:工厂方法为系统结构提供了非常灵活强大的动态扩展机制,只要我们更换一下具体的工厂方法,系统其他地方无需一点变换,就有可能将系统功能进行改头换面的变化。在现在VS2005开发中还用这种模式吗:现在不止是vs2005,包括其它的面向对象编程语言...

装饰画有哪些种类
最好加浮雕外框, 显得富丽堂皇,雍容华贵。2、色彩上和室内的墙面家具陈设有呼应,不显得孤立。如果是深沉稳重的家具式样,画就要选与之协调的古朴素雅的画。若是明亮简洁的家具和装修,最好选择活泼,温馨,前卫,抽象类的。3、尽量选择手绘油画,市场有印刷填色的仿真油画,时间长了会氧化变色。

接口与类的关系
首先要明确,接口不是类,所以也不是抽象类。类是属性和方法容器,但是这些属性和方法没有任何区别的堆积在一起,当开发人员要寻找某个方法时,将很不方便,这个时候,接口出现了,接口的出现就是为了解决这个问题。接口将类的内部属性和方法进行分类,定义不同功能组的属性和方法。我们可以把接口看做一...

梦见鱼产小鱼的预兆
你希望能够采用富有创造性的办法,以更快的速度跳跃式进行。金钱将是这个实施过程中制约你的东西。抽象类的作品,今天能给你带来较多的灵感,不妨到附近的博物馆、艺术馆看看吧!恋人的玩心颇重,你也要记得照顾一下他的感受才是!上学的人梦见鱼产乱,意味着成绩文科较差,不能录取。

JAVA界面问题高手帮帮忙
在Applet类中可以直接使用getImage方法,但在应用程序(也就是Frame类中)中应使用java.awt.Toolkit类中的getImage()方法,因为在Component类中没有关于反回Image对象的方法。2、java.awt.Toolkit类中的getImage方法:Toolkit类是一个抽象类,因此不能直接实例化Toolkit类的对象,在Toolkit类中有两个版本的...

去微软应聘需要什么条件?
,根据检索结果列出招聘对象。当然,还要打电话邀请他们前来面试。要在激烈的市场竞争中站住脚,必须不断超越自己,超越竞争对手,微软的经验在于非常重视科技人才的心理素质。在微软,优秀科技人才的标准是不仅要有很高的专业技能,还要能承受巨大的工作压力,并勇于接受新知识,不断创新 ...

应该怎样学习JAVA?顺序是什么?
不知道Java 学习顺序的话,我提供你一条学习线路图!按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。第一部分:JavaSE:Java语言最基本的一套库 学习JavaEE或JavaME之前,JavaSE是必学的。Java开发环境搭建 Java基础语法 面向对象 数组 异常 集合 ...

谁能介绍一下JAVA平台开发中最长用的几种设计模式~最好是通俗一些的并且...
”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式...

工厂模式-看这一篇就够了,新人都能理解
在工厂模式中,工厂实体类被抽象化,以便产生更多生产某种产品的生产线。相比简单工厂,抽象工厂更适用于创建过程复杂的产品。通过扩展产品类和工厂类,可以实现工厂模式。最终,你将拥有一套完整的高端产品生产线,用于生产如冰箱、洗衣机等高端产品。这类似于两家生产同样产品的不同品牌公司,拥有各自的高端...

软件设计模式主要有哪几种
前者的重点在于"怎么生产",后者的重点在于"生产哪些";前者是一个抽象产品类,可以派生出多个具体产品类,后者是多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 3、单例模式 单例模式能保证一个类仅有一个实例,并提供一个访问它的全局访问点,同时在类内部创造单一对象,通过设置权限,使类外部无法再创造对象...

南雄市14798395231: java中 抽象类是不是不能创建该类的实例的? -
潜顷齐克: 抽象类不可以直接实例化,只可以用来继承;抽象类的派生子类应该提供对其所有抽象方法的具体实现;可以这么认为,抽象方法实际上就是由抽象基类强制要求其派生子类必须实现的方法原型;如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化;抽象类中也可以包含有非抽象的方法,甚至全部都是具体的方法(如java.awt.event.WindowAdapter);构造方法和静态方法不可以修饰为abstract.

南雄市14798395231: 抽象类:C++中定义,含有纯虚拟函数的类称为抽象类,它不能生成对象. -
潜顷齐克: 定义是正确的.第二种说法不严谨,仅仅是改变了构造函数的访问权限,让客户端没有办法直接创建对象,即没法new了.但是其自身是可以定义静态函数用于创建对象的,因此不能说是抽象类.

南雄市14798395231: 抽象类的作用是什么?为什么不能被实例化 -
潜顷齐克: 抽象类是不能够实例化的类: 它的作用就是产生子类的同时给于子类一些特定的属性和方法. 来个简单的例子... 如果你的程序里面需要用到苹果和梨这2个类..那么你可以分别给出这2个类 但是你会发现这2个类里面有共同的属性和方法(属性: 都有核.. 方法: 都需要削皮吃...)那么你可以建立抽象类 "水果" 把这些共同的东西都定义在那里. 那么你的2个子类就只需要实其他必要的东东了(味道, 价格...)优点: 当你需要对苹果和梨做新的,共同的修改或者添加的时候. 你现在就可以直接对他们的超类 水果 做就可以了.多看点基础书吧,上面说的很详细的

南雄市14798395231: “java抽象类”不能被实例化是什么意思? -
潜顷齐克: Calendar c = new Calendar(); 出现 new Calendar()就会执行实例化一个对象了.所以如果是抽象类就不能这样new的.要new 它没有abstract的子类.抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法. 1、抽象类可以...

南雄市14798395231: 请问抽象类能不能实例化?又很多书上说可以,也有说不可以. -
潜顷齐克: 抽象类不能被实例化,它可以有构造方法,但是不能直接用new来创建,只能是用子类继承后,来创建,但是抽象类可以当做是一种类型.比如有抽象类A,那么 A a = new A();是会报错的,只能是B继承A,然后用A a= new B()

南雄市14798395231: 为什么抽象类不能实例化的解释 -
潜顷齐克: 对.抽象类是不能被实例化的.抽象类可以很方便的解决很多问题.通常用于多态.决个简单例子吧,比如我们有一个eat(Food food)方法.Food是抽象类.Beef、Meat类继承并实现了这个抽象类.可以写 Food beef=new Beef();Food meat=new Meat(); 这是我们不管他是Beef还是Meat都可以直接调用eat(beef)和eat(meat),这样省去了很多麻烦

南雄市14798395231: java 抽象类不能直接进行实例化的操作,但可以声明对象 -
潜顷齐克: 声明就是等号前面的:A a; 这样写编译运行都是没有问题的. 要说具体作用,比如你有B和C类都继承自A,而你想把他们都作为A类来使用,就可以声明: A a1,a2; a1=new B(); a2=new C();

南雄市14798395231: 抽象函数 java -
潜顷齐克: 1、抽象类 当想要通过共通接口来操作一组classes时,便可撰写abstract class.子类中所有与“抽象类所声明的标记式”相符的函数,都会通过动态绑定的机制来调用.有一组类他们拥有一系列相似的行为特征,它们拥有一些共同的函数,...

南雄市14798395231: 在c++中有没有纯虚构造函数?在c++中纯虚析构函数的作用是什么 -
潜顷齐克: 可以有. 在某些类里声明纯虚析构函数很方便.纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象).有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数.怎么办?方法很简单:在想要成为抽象类的类里声明...

南雄市14798395231: 抽象类为什么不能实例化 -
潜顷齐克: 一般抽象类里面都有抽象方法,比如 public abstract class Test { public abstract boolean fight(); } 这样一个抽象类里有一个抽象方法 fight(),需要返回是否打赢了,但是如何打,就是fight()的具体实现,没有定义,到底是拳击啊,还是散打啊?需要继承该抽象方法的子类去具体实现.那么这么一个 含有没有定义具体内容抽象方法 的抽象类 被你实例化了,有什么用?所以java设计的时候,就不允许实例化抽象类.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网