abstract关键字(abstract不可以和哪些关键字共存)
本文目录
- abstract不可以和哪些关键字共存
- 为什么要在定义抽象类时使用abstract关键字
- abstract 方法必须在abstract 类中 接口也算是abstract 类
- abstrct关键字
- java全部关键字及其每个用法解释
- 多态里,父类是抽象类和不是抽象类有什么区别
- 在java里创建接口时,有没有必要在接口前面加上abstract的关键字呢
- java中abstract关键字问题和接口问题
- 关键字final和abstract是否可以同时做类的修饰符,为什么
abstract不可以和哪些关键字共存
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;2).final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;3).static:因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;(abstract是没有实现的,不能产生对象,而是static是属于类的,类本身是已经存在的对象)4).synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突)5).native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法
为什么要在定义抽象类时使用abstract关键字
这是个规范,让程序知道这个类是抽象类。类前面都可以加修饰符,abstract只是其中的一种,如果你不加,就默认为一般的对象,可以实例化。如果加了修饰符就表明这个类是特殊的,具有自己的特性。否则你不定义程序如何判断此类到底是抽象类?还是静态类?或者就是一个普通的类呢?这种问题不用太纠结。
abstract 方法必须在abstract 类中 接口也算是abstract 类
抽象类是抽象类,接口是接口抽象类是类的一种,关键字是class,只不过用abstract关键字修饰了就是抽象类接口的关键字是interface,和class是同一个层次的。至于抽象类和接口的区别,你可以在网上搜一搜。简单总结就是:相同点:1. 具体子类都需要实现他们的抽象方法2. 都不能被实例化不同点:1. 接口中只能定义抽象方法和常量,可多重实现2. 抽象方法中可以定义任何的类型,只能单重继承。。。还有很多。。。
abstrct关键字
abstrct抽象的abstract 不可以和static、virtual、final、native一起使用声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(抽象方法),那么这个类就是一个抽象类,抽象类的对象就不能被实例化,通常用于强制继承类必须实现某一成员.抽象类是必须要派生子类的。并且,如果子类没有实现抽象基类的所有方法,则子类也成为一个抽象类。抽象类当一个类被声明为abstract时,这个类被称为抽象类。所谓的抽象类就是没有实例对象的类。java中定义抽象类是出于相同考虑。抽象类是他的所有子类的公共属性的集合,所以抽象类的一大优点就是充分利用公共属性来提高开发和维护程序的效率。抽象方法作为修饰符,abstract声明了一种没有具体对象的,出于组织概念的层次关系需要而存在的抽象类;作为类方法修饰符,abstract则声明了一种仅有方法头,而没有具体的方法体和操作实现的抽象方法。如:abstract boolen goVacation(int days);可见,abstract方法只有方法头得声明,而用一个分号来代替方法体得定义;至于方法体得具体实现,那是由当前类的不同子类在他们各自的类定义中完成的。public abstract class MyAbstractClass {public void test1(){ // 一个正常的方法}public abstract void test2(){ // 一个抽象方法。}提示,如果JAVA类的任何一个方法是abstract的,则类本身必须是abstract的。
java全部关键字及其每个用法解释
Abstract 抽象的 一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 break 一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行 case Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。 catch Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。 char Java语言的一个关键字,用来定义一个字符类型 continue 一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。 do 一个Java语言的关键字,用来声明一个循环,这个循环的结束条件可以通过while关键字设置 double 一个Java语言的关键字,用来定义一个double类型的变量 else 一个Java语言的关键字,如果if语句的条件不满足就会执行该语句。 final 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 finally 一个Java语言的关键字,用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。 float 一个Java语言的关键字,用来定义一个浮点数变量 for 一个Java语言的关键字,用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。 if Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 implements Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 import Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。 instanceof 一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。 int Java(TM)的一个关键字,用来定义一个整形变量 Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。 long Java语言的一个关键字,用来定义一个long类型的变量。 private Java语言的一个关键字,用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。 protected Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。 public Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。 return Java语言的一个关键字,用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。 short Java语言的关键字,用来定义一个short类型的变量。 static Java语言的关键字,用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。“static“ 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 this Java语言的关键字,用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 throw Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象 throws Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。 transient Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 try Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 void Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。“void“也可以用来表示一句没有任何功能的语句。 volatile Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。 while Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。 关于break和continue。 continue语句与break语句相关,但较少用到。continue语句用于使其所在的for、while或do-while语句开始下一次循环。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环语句中,continue语句的执行则意味着使控制传递到增量部分。
多态里,父类是抽象类和不是抽象类有什么区别
抽象类: 将一个方法声明为抽象方法有两个结果:
类也必须声明为抽象类,如果一个类包含了一个抽象方法,那么该类也必须是抽象类;
任何子类必须重写抽象方法,除非子类本身也是抽象类;
关键字: abstract;用这个关键字修饰类的时候,表示这个类是抽象类;
注: 抽象类不能产生对象,它只能充当父类;
有抽象方法的类一定是抽象类;
抽象类不一定有抽象方法;
抽象类除了类有abstract修饰符,它内部跟普通类一样,可以有:属性、构造、已经实现的方法;
例:
public class Boy { private Girl myGirl; public Girl getMyGirl() { return myGirl; } public void setMyGirl(Girl myGirl) { this.myGirl = myGirl; } public void kiss(){ System.out.println(“让我亲一个嘛~~~“); this.myGirl.response(); }}public abstract class Girl { //abstract关键字表示抽象 //当它修饰方法的时候,表示类有这个方法,但是不能确定这个方法的实现,应该由它的子类去确定 public abstract void response(); }public class PureGirl extends Girl {//子类在继承抽象类的时候,必须重写抽象类的抽象方法。//否则这个子类也必须是抽象类。
@Override public void response() { // TODO Auto-generated method stub System.out.println(“嗯~~~你好坏~~~“); } }public class BoldGirl extends Girl {//子类在继承抽象类的时候,必须重写抽象类的抽象方法。//否则这个子类也必须是抽象类。
@Override public void response() { // TODO Auto-generated method stub System.out.println(“老娘飞起来一脚~~~~“); } }public class TestLove { /** * @param args */ public static void main(String args) { // TODO Auto-generated method stub Boy boy = new Boy(); System.out.println(“请选择你喜欢的女孩类型:1、纯情;2、野蛮。“); int choice = new Scanner(System.in).nextInt(); Girl girl = null; switch(choice){ case 1: girl = new PureGirl();break; case 2: girl = new BoldGirl();break; } boy.setMyGirl(girl); boy.kiss(); } }在java里创建接口时,有没有必要在接口前面加上abstract的关键字呢
接口里的方法都是抽象的,但如果一个接口本身是抽象的话,其他的类就不能直接实现这个接口,也就是说 Class X implements SessionAware{}这样的代码是不合法的,抽象借口是为了让其他接口去继承的,比如这样interface X extends SessionAware{...}所以,抽象接口是有必要的。
java中abstract关键字问题和接口问题
abstract 在Java中用来定义抽象类和抽象方法!在Java中,抽象类不能实例化。在抽象类中,可以定义抽象方法和非抽象方法。其子类可以重写父类的抽象方法,但也可以不重写父类的抽象方法,如果不重写,那么其子类也必须为抽象类。接口用来抽象某一类事物的本质,或用来规范某一类事物的特征。比如说人,人都要吃、喝、拉、潵、睡,这是人的共性,而人也有性格,职业,爱好等个性化的元素。所以可以把共性的东西统一做成一个借口,用来规范这一类事物的共同特性,而实现借口的类,可以完成相应的个性化问题。接口和抽象类的区别为,借口没有任何业务逻辑的实现,很单纯的定义一个规范,而抽象类里面还可以有非抽象方法,这样一来,如果抽象类里面的非抽象方法改掉了,可能会影响所有实现他的子类。其实抽象类和接口都是Java设计模式中很重要的概念,同时也是最能反映Java面向对象特征的东西。要想学好Java和面向对象的思想,这个很重要。另外接口还有另外一个重要的应用。因为Java中没有全局变量的概念(也就是说所有类共享的变量),所以常常在接口中定义一些代表全局性的变量或常量,因为接口无法实例化,所以不用担心浪费内存!
关键字final和abstract是否可以同时做类的修饰符,为什么
不可以的。解释:final的类不能被重写和继承,而abstract的类是抽象类,本身没有实现,只能通过子类来实现,也就是说必须被继承。所以说它们是没法同时做修饰符的。
更多文章:

equals to(A equals B 与 A equals to B 这两个用法都对吗)
2025年3月9日 10:30

toaster oven(电烤箱上Grill、Oven、Toast是什么意思)
2025年3月15日 08:00

用switch语句输出成绩等级(在java里面利用switch case求出成绩所在等级如何做)
2025年2月19日 11:20

使命召唤ol(codol)体验服怎么进去!?codol算不算动视暴雪
2025年3月2日 04:50

16进制转10进制c语言代码(C语言写一个函数,16进制转十进制)
2025年3月13日 13:40

compare with to(怎么区分compare with和compare to)
2025年3月27日 05:10

interesting是什么意思英语(“interesting”怎么读)
2025年2月9日 05:00

condescending(condescending什么意思)
2025年4月2日 09:40

drawable是什么意思(drawablehdpi什么意思)
2025年3月15日 14:30