抽象abstract

1):一个类如果有抽象方法,这个类一定是抽象类。抽象类不一定有抽象方法。抽象方法是以分号结束。不是以{}。

抽象方法也不提供实现代码。

2):任何拓展抽象类的类都必须实现超类的所有抽象方法。除非子类也是抽象的。规则如下:

    抽象类的第一个具体子类必须实现超类的所有抽象方法。

3):抽象方法因为是不能被实例化的,所以使用的时候要先进行子类对其实例化。然后实现它的方法。

  abstract 和final 不能同时使用。

    原因:abstract设计指超类完全不知道子类在该方法中应该怎样运作。
                         final设计意味着超类知道子类在该方法中应该怎样运作的每件事情。

  abstract和private不能同时使用:

    原因:private方法甚至不能被子类看到(更不要说被继承)。所以它们也不能被重写。

  abstract和static不能同时使用:

    原因:static不需要实例就可以使用。

        abstract需要继承实现才能使用。

       抽象是多态的一种体现,可以有子类来实现它。

            静态不能实例化,故不能被子类引用。

          你把一个类定义为abstract就是为了达到多态这个目的,如果abstract与static一起用的话,JVM则无法编译你要做什么。所以他们俩不能一起使用。

时间: 2024-08-03 02:34:43

抽象abstract的相关文章

抽象 & abstract关键字

抽象类 抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用.类的设计应该保证父类和子类能够共享特征.有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫抽象类. 个人理解:子类变得越来越多,涵盖范围越来越广,以至于囊括几乎所有情形,父类变得更多是一种"形式",甚至变得无用.比如"人"作为父类,而当子类涵盖几乎所有类型的"人"后,父类

java — 抽象abstract 和 最终 final

java - 抽象abstract 和 最终 final 修饰符 一.抽象类和抽象方法 抽象类:由于许多对象都有共同的属性和方法,产生了代码冗余,抽象类做的就是将这些类共同的方法和属性 抽取 出来,变成了一个类,那就是抽象类. 和 父类 很像对不对,其实抽象类就是父类中的一种,必须被继承才能完美使用的一种类. 1. 抽象类的声明 [访问修饰符] abstract class 类名 { //方法体 } 2. 抽象方法的声明 [访问修饰符] abstract 返回值类型 方法名 (形参类型 形参名,

深入解读php中抽象(abstract)类和抽象方法

在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问的接口.而抽象方法就是为了方便继承而引入的,现在来看一下抽象类和抽象方法分别是如何定义以及他们的特点. 什么是抽象方法? 我们在类里面定义的只有方法名没有方法体的方法就是抽象方法,所谓没有方法体就是在方法声明的时候没有大括号以及其中的内容,而是直接声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字"abstract"来修饰. 1.抽象关键字 :abstract 抽象就是无

设计模式 - 抽象工厂模式(abstract factory pattern) 详解

抽象工厂模式(abstract factory pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27091671 参考工厂模式: http://blog.csdn.net/caroline_wendy/article/details/27081511 抽象工厂模式: 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要明确指定具体类. 全部代码: http://download.csdn.net/de

设计模式 - 抽象工厂模式(abstract factory pattern) 具体解释

抽象工厂模式(abstract factory pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27091671 參考工厂模式: http://blog.csdn.net/caroline_wendy/article/details/27081511 抽象工厂模式: 提供一个接口, 用于创建相关或依赖对象的家族, 而不须要明白指定详细类. 所有代码: http://download.csdn.net/

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

希望下次 别人问我抽象 ,继承 ,密封 的时候 我不是背书 而是 在讲实实在在的实现

码畜的救赎: [抽象] abstract class Controller : ControllerBase, IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter, IAsyncController, IController, IAsyncManagerConta...  18:02  回应 码畜的救赎: [抽象] abstract class ApiController : IHtt

高级抽象

多年前留下来的,但不记得从哪位大神的blog里拷贝下来的,暂记于此. 1.认识到本质,才能让你的程序具备更大的灵活性和扩展性.在软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象.合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步.这是一个优秀高级程序员所应该具备的能力. 2.提高抽象思维的能力就是提高抽取不同事物的共性的能力,不同的事物不仅仅是包括现实中具体的事物.引入到编程语言里:抽象类是一类事物的高度聚合,而接口是定义行为规范.聚合(抽象abstract)<-

疯狂java学习笔记之面向对象-定义类、方法、构造器

Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始 定义类的语法格式: [修饰符]  class  类名{ //0 ~ N 个 Field 定义 //0 ~ N 个 方法定义 //0 ~ N个 构造器定义 } 一个类中最多只能出现五种成分:Field.方法.构造器 一个类最常见