java中抽象类和抽象方法到底什么关系?请举例说明!

抽象类和抽象方法什么关系?抽象类中可能有抽象方法,也可能没有抽象方法。(视频下载) (全部书籍)那位说,就跟没说一样,那抽象类和抽象方法都叫抽象,他们必定有关系,那关系是什么呢?如果一个类中有抽象方法,它必须得是抽象类。

An abstract class may have no abstract method,such as the following class
Car. 马  克- t  o --wi n: At this time,the only point and the meaning of
abstract class is that we can not instantiated the class, because it is abstract
class.Why an abstract class can have a nonabstract method? what is the point? also in logic, think
over the following example, car is a bit abstract in that you dont‘
know exactly whether it is a truck or a jeep or a limersine,
马克-to-win:so it is defined as a abstract class. but no matter whether it
is truck,jep, or limersine, it definitely use steering wheel. so its
steer() method is an ordinary method instead of an abstract method.  )

Abstract class can’t be instantiated.

例1.7.1---本章源码

abstract class Nothing {//里面有方法也照样声明为abstract

void nothing() {
       System.out.println("nothing");

}

}

abstract class VehMark_to_win {

abstract void steer();

abstract void move();

}

class Bike extends VehMark_to_win {//Bike不是抽象的, 所以必须得全部实现abstract方法

void steer() {

System.out.println("Turn handlebar");

}

void move() {//Bike不是抽象的, 所以必须得实现move方法

System.out.println("move");

}

}

abstract class Cart extends VehMark_to_win {

//因为Cart是抽象的, 可以这里还是什么都不干

}

abstract class Car extends VehMark_to_win {

void steer() {

System.out.println("Turn steering wheel");

}

void move() {

System.out.println("move");

}

}

class Lim extends Car {

//之所以这里可以什么都不干, 而且还不是抽象的,马克-to-win: 因为父类Car全部实现了Veh的抽象方法

}

public class Test {

public static void main(String[] args) {

Nothing n0;//声明是没问题的, 但不能实例化
。。。。。。。。。。。。。。。
详情请见:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner3_web.html#RelationAbstractMethodClass

原文地址:https://www.cnblogs.com/mark-to-win/p/9693344.html

时间: 2024-07-31 23:15:33

java中抽象类和抽象方法到底什么关系?请举例说明!的相关文章

Java中抽象类和抽象方法的区别

抽象方法:在类中没有方法体的方法,就是抽象方法. 抽象类:含有抽象方法的类就叫抽象类. 抽象类中的抽象方法必须被实现! 如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类! 抽象类中的普通方法,可以不必实现. 1.用abstract来修饰一个类时,这个类叫做抽象类:用abstract来修饰一个方法时,该方法叫做抽象方法.例如 : 抽象类: abstract class Animal { //用abstract来定义一个Animal为抽象类} 抽象方法: public abstract

java抽象类和抽象方法之间的关系

抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所以也就相当于子类中也有了抽象方法,通过重写,可以将抽象方法覆盖. 抽象类的特点:必须有abstract关键字修饰,不可以通过new来创建对象,抽象方法不可以写函数体(非抽象方法必须写函数体) 关键字小总结:不想让别的类重写的方法,用final:内容不确定的方法,用abstract(子类中用法不一样)

java中抽象类与接口的区别

转自: http://blog.csdn.net/tp7309/article/details/10452445 二者的区别快忘得差不多了,从别处看到这文章感觉写的不错,正好复习复习,也给大家分享一下. 抽象类 abstract class 包含抽象方法的类,叫抽象类.而抽象的概念就是抽象出共同属性:成员变量和方法.所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法.当然抽象方法是一定要有的. 抽象类是用于单一继承的,不能实例化.而继承类一定要实现抽象方法,因为抽象

我如何理解Java中抽象类和接口

在面试中我们经常被问到:Java中抽象类和接口的区别是什么? 然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦:一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的说出来一样. 抽象类和接口这篇文章讲到了他们的区别和联系,它们确实有很多相似的地方,但是从本质上看,或从语言的设计角度来看,这不是它们最本质的区别. 不卖关子,我个人对这两个的理解: 类是具体实例的抽象,比如一个json字符串的抽象:而抽象类就是类的抽象:接口就是抽象类的抽象,接口

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c

Java中抽象类也能实例化

在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然有构造方法,又不可以通过new来创建,那么抽象类在没变成具体类的时候究竟可不可以实例化呢? 通过上网查找资料.引用:blog.sina.com.cn/s/blog_7ffb8dd5010120oe.html 抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用

Java中抽象类也能实例化.RP

在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然有构造方法,又不可以通过new来创建,那么抽象类在没变成具体类的时候究竟可不可以实例化呢? 通过上网查找资料.引用:blog.sina.com.cn/s/blog_7ffb8dd5010120oe.html 抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用

详细解析Java中抽象类和接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意. 其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.

[转]详细解析Java中抽象类和接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确.合理