当前位置:首页 » 编程语言 » java抽象变量

java抽象变量

发布时间: 2022-05-14 05:34:00

‘壹’ 关于java抽象方法

下面是抽象方法声明时采用的语法:abstract void f();
如果从一个抽象类继承,而且想生成新类型的一个对象,就必须为基础类中的所有抽象方法提供方法定义。如果不这样做(完全可以选择不做),则衍生类也会是抽象的,而且编译器会强迫我们用abstract 关键字标志那个类的“抽象”本质。即使不包括任何abstract 方法,亦可将一个类声明成“抽象类”。如果一个类没必要拥有任何抽象方法,而且我们想禁止那个类的所有实例,这种能力就会显得非常有用。
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。在面向对象领域,抽象类主要用来进行类型隐藏。我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。熟悉OCP的读者一定知道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。

‘贰’ JAVA问题:抽象类 变量名=new 类名(): 父类 变量名=new 子类()为什么这样定义有什么好处

GregorianCalendar是Calendar子类
子类可以拓展更多的函数,也可以覆写父类的函数
这么定义的好处是cal1可以使用Calendar的所有函数的功能.或者是自身基类修改后的后的函数的功能.
同时它仍然是个Calendar类.
属性的默认值什么的仍然是Calendar的而不是GregorianCalendar类的.
这个方法可以用于拓展或者修改一些类比较方便.
比如你可以给基本数据类型的包装类Integer做个子类增加自己的算法或者是别的操作什么的.
或者是直接修改原先内置的方法.
然后用这种方式定义的时候还不用转换数据类型,直接就照常和别的整型运算就行了.
在不改变你变量类型的情况下就能增加了原先没有的方法.
和Kotlin中的类的拓展有异曲同工之妙.

‘叁’ JAVA可以抽象成员变量吗

抽象成员变量?是抽象方法吧,这个可以,用关键字abstract,类也要用抽象类。

‘肆’ java抽象类中可以声明变量吗能赋初值吗

public class chouDemo {
public static void main(String[] args) {
father s=new son();
s.aaaa(3, "hello");//3和hello就是给形式参数赋值

}
}
abstract class father{
int i=12;
public void aaa(){
int a=1;//实例方法直接赋值
}
public abstract void aaaa(int y,String s);//抽象方法没有方法体,也就是没有成员变量
}
class son extends father{
public void aaaa(int y,String s){
int x=y;
String c=s;
}
}

‘伍’ java 抽象怎么理解

  1. 抽象是一种面向对象的编程实践的核心原则, Java具有所有OOPs原则,抽象是一个Java语言的主要构建块。

  2. 数据抽象的跨度从创建简单的数据对象集合的实现复杂如HashMap或HashSet。

  3. 控制抽象是结构化编程背后主要驱动力。

‘陆’ java API 文档中的接口方法和抽象方法,有什么区别

对于面向对象编程来说,抽象是它的一大特征之一。可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。 抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为abstract类了。在软件工程中,接口泛指供别人调用的方法或者函数。从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象。接口中可以含有变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。从这里可以隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。

‘柒’ JAVA问题:我真不明白为什么是这样的:抽象类 变量名=new 类名():为什么这样定义有什么好处

抽象类实际上是对一个基类的实例化
给你打个比方吧......人类是一个基类(属性和方法有,名字,年龄,身高,打篮球等)...对这个基类实例化就相当于把某个东西抽象成基类..让它也具有基类相同的属性和方法..(
例如 :人类 张三=new 人类() 这样张三就具有了人类的特性了)这样做的好处是...代码易于管理...对基类的实例化不会影响基类本身....最重要的是代码的可重用性(比如还有另外一个人叫李四,把李四实例化后..李四也具有人类的特征了,而张三跟李四互不干扰)
例如创建一个button(按钮)的实例可以这样写(我们都知道button的属性有text,name,font,等属性,JAVA中创建button请参考JAVA的窗体创建方法)
button b1 =new button()
这样b1就具有了Button按钮的属性和方法了,使用对象的属性可以写成这样
b1.text=“这是一个Button按钮"

‘捌’ java 抽象类中可以定义哪些成员变量和函数

都可以,抽象类中可以包含抽象方法,但是不是一定要包含。一个抽象类可以没有抽象方法都行。如果一个类中包含了一个抽象方法,那么这个类一定是抽象类。
抽象类中能包含的与普通类没什么根本区别。
1.如果一个类被定义为抽象类,且没有包含任何抽象方法,(也就是说该抽象类已经都实现了这些方法),那么子类在继承这个抽象类的时候不必重写这些方法。
2.相应的,如果一个类被定义为抽象类,包含抽象方法,那么在子类中一定要实现这些抽象方法。否则,子类必须声明为一个抽象类。

‘玖’ JAVA中创建抽象类的对象变量,指向他的非抽象子类是什麽意思

你说的应该是这样的一种情况:

人 a = new 张三();

这里面“人”是一个抽象类,有些方法比如“吃饭”都已经实现了,而有些方法比如“获取名字“、”获取样子”等没有实现;“张三”是人的子类,是一个非抽象类,实现了所有方法。

这里的a可以说是抽象类人的变量,指向的是张三这个非抽象类。

我们可以用抽象类定义变量,但实例化的时候必须用非抽象类。就比如我们写计划的时候可以说今年安排多少“人”进修,每天多少“人”打扫卫生等,说的很抽象。但是具体执行的时候是必须指明到底安排的是谁。
先说到这,你要是还有什么不明白的话就追问吧,给我发信也行。

============

我看你问到内存的东西了,我可以再给你解释一下,我还是注意答案的质量的:)
看这条语句:A a = new AA();
先看A a,这只是在栈里面创建一个4字节的指针变量。
new AA;这条语句是在堆里面开辟AA类型的空间,这个空间里面存放的是AA所包含的以及继承的所有非静态变量,不包含方法代码。(方法代码在方法区,虚拟机第一次见到AA时就会加载进去,注意第一次就会,而且仅仅一次)
AA();这条语句是调用AA的构造方法AA()
= 是赋值,把开辟的堆空间首地址赋给指针a。
明白么:)??

‘拾’ java抽象变量

这两个 代码的功能应该是一样的
不过第一例子中 classB 继承的是抽象类classA那么它就必须实例话classA中的int min(int a,int b)抽象方法。如果不想实例话那么classB 只能写成抽象类 要不会报错
而例子二中 继承的是个普通的类就算是不写min(int a,int b)方法也是对的 就这个区别
小弟学的不是很精只能说出这点来

热点内容
歪歪脚本 发布:2025-05-12 06:07:37 浏览:670
linux多ip 发布:2025-05-12 05:58:31 浏览:90
手机无线路由器怎么设置密码 发布:2025-05-12 05:18:28 浏览:816
渝人解压密码 发布:2025-05-12 05:18:12 浏览:769
备份网站数据库备份 发布:2025-05-12 05:04:35 浏览:53
转移的存储卡 发布:2025-05-12 04:51:18 浏览:467
c语言大数相加 发布:2025-05-12 04:51:13 浏览:589
安卓内存大小有什么影响 发布:2025-05-12 04:41:36 浏览:51
以下c语言常量错误的是 发布:2025-05-12 04:40:39 浏览:808
怎么降低qq版本安卓80 发布:2025-05-12 04:40:39 浏览:191