抽象类定义成员变量(为什么抽象类可以设置成员变量 ,而普通类不可以)

:暂无数据 2026-08-15 22:20:07 :4

抽象类定义成员变量(为什么抽象类可以设置成员变量 ,而普通类不可以)

本篇文章给大家谈谈抽象类定义成员变量,以及为什么抽象类可以设置成员变量 ,而普通类不可以对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

为什么抽象类可以设置成员变量 ,而普通类不可以

.......
abstract class A{
int a=0;
}//对
class B{
int b=0;
}//对

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

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

java抽象类里面用该抽象类的子类作为成员变量,这是什么用法

这个是java的多态特性,其实不是父类用子类的成员变量,是子类用子类的成员变量
Fu fu = new Zi();
这里的fu实际上已经指向子类了

创建一个学生类,成员属性为学号,姓名,性别,年龄,java,成绩成员属性通过构造方法

public class Student {

 //1、定义成员变量

private String no;//学号

private String name;//姓名

private String sex;//性别

private String age;//年龄

private float score;//成绩

//2、通过构造方法初始化成员变量的值

public Student(String no, String name, String sex, String age , float score) {

this.no = no;

this.name = name;

this.sex = sex;

this.age = age;

this.score = score;

}

//测试

public static void main(String args) {

//new一个学生对象,并使用构造方法初始化成员变量      

Student S01 = new Student("s01", "张三", "男", "20", 99);

System.out.println("学号:"+S01.no+"\n"+

"姓名:"+S01.name+"\n"+

"性别"+S01.sex+"\n"+

"年龄"+S01.age+"\n"+

"成绩"+S01.score);

}

}

代码截图:

扩展资料:

抽象类

并不是所有种类的事物都可以被实例化,换而言之,有的种类只是一种抽象概念,现实中并没有实际存在的对应物。

比如:假设所有的动物都会叫,我们可以定义一个类“动物”,定义类中的一个成员函数“叫”,我们知道猫的叫声,也知道狗的叫声,然而“动物”是如何“叫”的?我们根本无法实现它。

所以,我们引入了抽象类的概念,抽象类是无法被实例化的,无法声明抽象类的对象。

通常,用abstract修饰的类是抽象类;C++中包含纯虚函数的类是抽象类;Java中含有抽象方法的类是抽象类;继承了纯虚函数而没有实现它的类也是抽象类。

抽象类只能被用作基类,作用体现在:

1、约束派生类必须实现的成员函数或方法。

2、不同派生类中同名的成员函数实现不同,体现了多态性。

参考资料:百度百科-类(编程术语)

关于抽象类和静态成员变量的问题

LZ需要明白静态变量属于类本身,存储于方法区,与类的实例无关。而之所以用其子类可以引用,是因为虚拟机在加载的A1,A2的时候会先加载A,至于解决方法:就是把static去掉(用instance来引用)

关于接口和抽象类的简单理解

抽象类:

抽象类体现了数据抽象的思想,是实现多态的一种机制。

1.由 abstract 关键词修饰的类称之为抽象类。 

2.抽象类中没有实现的方法称之为抽象方法,也需要加关键字 abstract 。 

3.抽象类中也可以没有抽象方法。 

4.抽象类中可以有已经实现的方法,可以定义成员变量。

5.抽象类可以多层继承。
接口:

接口提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字实现。

1.由 interface 关键词修饰的称之为接口; 

2.接口中可以定义成员变量,但是这些成员变量默认都是 public static final 的常量。 

3.接口中没有已经实现的方法,全部是抽象方法。 

4.一个类实现某一接口,必须实现接口中定义的所有方法。 

5.一个类可以实现多个接口。
区别:  

1.抽象层次不同。

    抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,

    接口却是对类局部(行为)进行抽象。

2.设计层次不同。

    抽象类是自下而上来设计的,要先知道子类才能抽象出父类,是自底向上抽象而来的。

    接口不需要知道子类的存在,只需要定义一个规则即可,是自顶向下设计出来的。

3.实现不同。

比如 鸟和飞机都有飞的行为

用抽象类实现:

父类:

飞机:
鸟:
用接口实现:

接口:

飞机:
鸟:
鸟类有吃东西的方法。但用抽象类继承,飞机也要实现吃东西的方法,显然是不合理的,

所以从这里可以看出来,抽象类是抽象的共有的属性或方法。而接口只是抽象了局部的一部分。
抽象类+接口:
鸟:
接口:

java中的抽象类中的方法必须是抽象方法么其中的成员变量必须是public static final的么

抽象类可以有抽象方法也可以没有抽象方法,有抽象方法的类一定是抽象类,抽象类不能被实例化,就是不能new。
接口里定义的变量用public static final修饰,抽象类里面也可以定义被public static final修饰的变量

编写一个抽象类Shape,声明计算形状面积的抽象方法ShapeArea()和成员变量ShapeColor(颜色).再分别定义Shap

你这个人问题我也问过,是yinfengnong这位大佬帮我的非常感谢他。再次我把他的代码给你。侵权立删网页链接

代码如下:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788

#include 《iostream》#include 《string》using namespace std; #define PI 3.1415926 class Shape { public:    Shape(const string& color)        : mShapeColor(color)    {}     const string& GetShapeColor() {        return mShapeColor;    }     void SetShapeColor(const string& color) {        this-》mShapeColor = color;    }     virtual double ShapeArea() = 0; private:    string mShapeColor;}; class Circle : public Shape { public:     Circle(const string& color, double raidus)        : Shape(color), mRaidus(raidus)    {}     double ShapeArea() {        return PI * mRaidus * mRaidus;    } private:    double mRaidus;}; class Rectangle : public Shape { public:    Rectangle(const string& color, double width, double height)        : Shape(color), mWidth(width), mHeight(height)    {}     double ShapeArea() {        return mWidth * mHeight;    } private:    double mWidth;    double mHeight;}; class Triangle : public Shape { public:    Triangle(const string& color, double width, double height)        : Shape(color), mWidth(width), mHeight(height)    {}     double ShapeArea() {        return mWidth * mHeight / 2;    } private:    double mWidth;    double mHeight;}; int main(){    Circle c("红色", 123.456);    cout 《《 "圆:颜色=" 《《 c.GetShapeColor() 《《 ", 面积=" 《《 c.ShapeArea() 《《 endl;     Rectangle r("白色", 100, 300);    cout 《《 "矩形:颜色=" 《《 r.GetShapeColor() 《《 ", 面积=" 《《 r.ShapeArea() 《《 endl;     Rectangle t("绿色", 123, 234);    cout 《《 "三角形:颜色=" 《《 t.GetShapeColor() 《《 ", 面积=" 《《 t.ShapeArea() 《《 endl;     return 0;}

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;
}
}

如果你还想了解更多这方面的信息,记得收藏关注本站。

抽象类定义成员变量(为什么抽象类可以设置成员变量 ,而普通类不可以)

本文编辑:admin

更多文章:


sqlite格式的视频怎么打开(.sqlite是什么文件,用什么工具打开)

sqlite格式的视频怎么打开(.sqlite是什么文件,用什么工具打开)

大家好,今天小编来为大家解答以下的问题,关于sqlite格式的视频怎么打开,.sqlite是什么文件,用什么工具打开这个很多人还不知道,现在让我们一起来看看吧!

2026年11月7日 05:30

element ui面试题(用element-ui ELDialog和ELTable遇见的坑)

element ui面试题(用element-ui ELDialog和ELTable遇见的坑)

各位老铁们好,相信很多人对element ui面试题都不是特别的了解,因此呢,今天就来为大家分享下关于element ui面试题以及用element-ui ELDialog和ELTable遇见的坑的问题知识,还望可以帮助大家,解决大家的一些

2026年11月7日 04:40

blob视频下载器(blob链接的图片如何调用下载)

blob视频下载器(blob链接的图片如何调用下载)

各位老铁们,大家好,今天由我来为大家分享blob视频下载器,以及blob链接的图片如何调用下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月7日 03:30

中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)

中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)

各位老铁们,大家好,今天由我来为大家分享中文自动翻译成英语的输入法,以及有没有一种输入法能将打出来的中文自动变成英文的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们

2026年11月7日 02:10

equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)

equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)

其实equals to的问题并不复杂,但是又很多的朋友都不太了解为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗,因此呢,今天小编就来为大家分享equals to的一些知识,希望可以帮助

2026年11月7日 01:50

default values(电脑开机后出现all settings was reset to default values.)

default values(电脑开机后出现all settings was reset to default values.)

其实default values的问题并不复杂,但是又很多的朋友都不太了解电脑开机后出现all settings was reset to default values.,因此呢,今天小编就来为大家分享default values的一些知识

2026年11月7日 01:20

structured reviewing翻译(软件测试的英文翻译)

structured reviewing翻译(软件测试的英文翻译)

大家好,关于structured reviewing翻译很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于软件测试的英文翻译的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2026年11月7日 00:50

网站模板下载好以后(动态网站模板下载后怎么用)

网站模板下载好以后(动态网站模板下载后怎么用)

“网站模板下载好以后”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看网站模板下载好以后(动态网站模板下载后怎么用)!

2026年11月6日 22:50

选项卡的作用(excel中的“数字”选项卡的功能)

选项卡的作用(excel中的“数字”选项卡的功能)

本篇文章给大家谈谈选项卡的作用,以及excel中的“数字”选项卡的功能对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年11月6日 22:20

vb手机版下载(有谁可以告诉我vb在哪里下载)

vb手机版下载(有谁可以告诉我vb在哪里下载)

“vb手机版下载”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vb手机版下载(有谁可以告诉我vb在哪里下载)!

2026年11月6日 21:50

最近更新

红米4x尺寸(红米4x参数)
2026-11-07 04:50:20 浏览:0
热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
标签列表