abstract修饰符,具体类与抽象类的区别

abstract修饰符
abstract可以修饰类,表示一个抽象类,注意:抽象类和具体类唯一的区别:类不能创建对象,而具体类是可以创建对象的
1.具体类有构造方法,抽象类也有构造方法
2.具体类可以有实例属性,抽象类也可以有实例属性
3.具体类可以有实例方法,抽象类中也可以有实例方法
4.具体类可以继承另外一个具体类,抽象类也可以继承另外一个具体类

abstract可以修饰一个方法,表示这是一个抽象方法,中有方法的声明,没有实现。

抽象类就是专门用来被继承的

一个类继承抽象类的时候,如果实现了抽象类中的全部的抽象方法,则这个是类是具体类
如果一个类继承了一个抽象类的时候,只实现了抽象类中的部分的抽象方法,则这个类必须声明为抽象类

时间: 2024-10-12 08:54:04

abstract修饰符,具体类与抽象类的区别的相关文章

JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别

abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于一类的半成品,需要子类继承并覆盖其中的抽象方法. (2)abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现. (3)注意的地方: A:有抽象方法的类一定是抽象类.但是抽象类中不一定都是抽象方法,也可以全是具体方法.abstract修饰符在修饰类时必须放在类

static、final、abstract修饰符

一.static修饰符 1.1.static变量 在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量. 静态变量和非静态变量的区别            静态变量属于类的,"可以"使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问. public class Student{ private static int age; private double score; public static void main(String[] a

反射 Reflect Modifier 修饰符工具类

在查看反射相关的Class.Field .Constructor 等类时,看到他们都有这样一个方法:getModifiers():返回此类或接口以整数编码的 Java 语言修饰符.如需要知道返回的值所代表的意思,则需要用到 java.lang.reflect.Modifier 这个类,这个类提供了 static 方法和常量,可以对类和成员访问修饰符进行解码. 既然是位于 java.lang.reflect 下,那说明一般是在动态加载过程中.使用java反射对某些类进行过滤时会用到,一般开发并不是

final修饰符,多态,抽象类,接口

1.final修饰符 final可以修饰类,该类不能被继承. final可以修饰方法,该方法不能被重写.(覆盖,复写) final可以修饰变量,该变量不能被重新赋值.因为这个变量其实常量 2.多态 同一个对象(事物),在不同时刻体现出来的不同状态. 举例:        猫是猫,猫是动物.        水(液体,固体,气态). 多态的前提: A:要有继承关系.        B:要有方法重写.            其实没有也是可以的,但是如果没有这个就没有意义.              

学习C#修饰符:类修饰符和成员修饰符

C#修饰符之类修饰符:public.internal. partial.abstract.sealed.static C#修饰符之成员修饰符:public.protected.private.internal.sealed.abstract.virtual.override.readonly.const Public:最开放,所有的本程序集以及其他的程序集里面的对象都能够访问 Protected:比较开放,自身成员以及子类成员可访问 Private:只有自身成员才能够访问 Internal:本程

Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传参的子类类型 面向对象总结: 面向对象是一种编程方式,此编程方式的实现是基于类和对象的使用 类:是一个模板,模板中包含了多个函数共使用,即类中可包含多个函数(类中的函数即叫做方法) 一般疑问: 1)什么样的代码才是面向对象? 简单来说,如果程序中的所有功能否是由 “类”和“对象”实现,那么就是面向对

Python学习:17.Python面向对象(四、属性(特性),成员修饰符,类的特殊成员)

一.属性(特性) 普通方法去执行的时候,后面需要加括号,特性方法执行的时候和静态字段一样不需要不需要加括号. 特性方法不和字段同名. 特性方法不能传参数. 在我们定义数据库字段类的时候,往往需要对其中的类属性做一些限制,一般用get和set方法来写,那在python中,我们该怎么做能够少写代码,又能优雅的实现想要的限制,减少错误的发生呢,这时候就需要我们的@property. 获取特性 class Foo: def __init__(self,name): self.name = name #

结构体、权限修饰符、类简介

一.结构体 结构体:自定义的数据类型 1 struct student 2 { 3 public: // 结构成员缺省都默认为public,所以可以不加public 4 5 //private: // 私有的 6 // 成员变量 7 int number; // 学号 8 char name[100]; // 学生名 9 10 void func() // 成员函数 11 { 12 number++; 13 return; 14 } 15 16 } 17 18 // 若值需要通过函数传出去,需要

c++第一讲,结构,权限修饰符,类,以及类的代码组织。

c++中的结构和c中的结构有什么区别? c++中结构除具备了c中结构的所有功能外,还增加了很多拓展功能,其中最突出的拓展功能之一就是:c++中的结构不仅有成员变量,还可以定义成员函数(或者说方法) 权限修饰符:public private protect public:公共的意思,用这个修饰结构/类中的成员变量/成员函数,就可以被外界访问.一般我们需要能够被外界访问的东西,就定义为public就好像是该类的外部结构一样,也就是在类的作用域外也还可以使用. private:私有的意思,用这个修饰符