抽象方法与抽象类

  类更多是规范,我只告诉你你需要做,具体怎样做是子类自己去实现----规范

  抽象方法只能在抽象类中--如果不在抽象类,那么调用方法的时候却没有实现。

一、 父类也不知道子类到底如何实现,它只是告诉子类必须去实现。 abstract  抽象的:一种概念,一个声明,它是没有任何实现的

抽象方法必须在抽象类中,但是抽象类中不仅仅只包含抽象方法,还可以有非抽象成员---子类继承使用

构造函数也可以让子类通过base方式调用

子类不一定需要去实现父类的抽象成员,但是必须是重写方法,同时将重写的方法也定义为abstract

二、abstract的使用注意

  1、抽象方法没有方法体

  2、抽象成员只能存在于抽象类中

  3、抽象类可以有非抽象成员(侧重族群的概念)

  4、抽象类的子类必须实现抽象方法体

  5、抽象类构造函数—子类使用

  6、抽象类只能用作基类,无法实例化(new)

三、抽象类的特点:

  1、需要用abstract关键字标记

  2、抽象方法不能有任何方法实现。

  3、抽象成员必须包含在抽象类中。

  4、由于抽象成员没有任何实现,所以子类必须将抽象成员重写。

  5、抽象类不能实例化。抽象类的作用:抽象类的作用就是为了让子类继承。

  6、抽象类中可以包括抽象成员,可以包括有具体代码的成员。

  7、还有抽象方法不能用static修饰

补充:

  1、抽象类定义的是公共的实现和能力

  2、抽象类为子类提供所需要的成员

  3、抽象类中的成员既可以有实现也可以无实现

4、抽象类必须由其子类实现它的抽象成员(除非子类也是抽象类)

  5、抽象方法(成员)不能有实现,必须被子类重写override(除非子类也是抽象类)

  6、抽象方法(成员)只能出现在抽象类中。

时间: 2024-12-24 19:08:24

抽象方法与抽象类的相关文章

5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类

对象的转型(casting) 引用变量只能调用它编译类型的方法,不能调用它运行类型的方法.这时,我们就需要进行类型的强制转换! [示例1]对象的转型 public class   TestCasting { public static void   main(String[] args) { Object obj = new   String("北京");  //向上可以自动转型 //obj.charAt(0)      //无法调用.编译器认为obj是Object类型而不是Strin

C#中的虚方法,抽象方法,抽象类以及接口

前言 众所周知,面向对象三大特点:封装.继承.多态.而今天我们将要学习的都是以多态为基础的,而什么是多态呢?举个不恰当的例子,比如你的对象,今天面对你是一副姿态,明天她给你戴绿帽子又是另一副模样(这个例子是从一个博主那看到的),你的对象还是同一个人,但是可以根据使用的对象来展现不一样的面貌,这,就是多态.简单来说:多态就是在继承的前提下,不同对象调用相同方法却表现出不同的行为.注:本次示例使用VS Code. 虚方法:virtual 虚方法存在于相对于需要实现多态的子类的父类当中,同时也是实现多

Java中没有抽象方法的抽象类的存在意义

含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法. 总结: 没有抽象方法的抽象类的作用: 1.抽象类不能new实例化 2.抽象类可以有构造方法,但是构造方法不能是抽象方法 3.通过子类继承,可以调用抽象类的构造方法 无抽象方法的抽象类 案例: 1.    装饰器模式(the decorator pattern) 2.      HttpServlet 它的所有方法, 作为默认实现的方法,都是非抽象的, 但它本身却带上abstract 的标志.这么作,就可以让它的子类,各取所需,仅覆盖它

20141014C#面向对象抽象方法,抽象类,接口

里氏代换原则.可以用子类的对象替代父类的对象. 抽象依赖原则.依赖——形参,关联 一.抽象方法: 在一些父类中,某些行为不是非常明确,因此无法用代码来具体实现,但是类必须具备此方法,因此把这样的方法定义为抽象方法.abstract 特点:1.只声明,不实现.2.加abstract关键字. eg: 1 public abstract class Ren //类中含有抽象方法,此类也必须是抽象类. 2 { 3 public abstract void Eat(); //以分号结束,没有花括号 4 }

抽象方法和抽象类

转载自http://www.cnblogs.com/li1056822533/p/6397243.html 1.什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰. 例如: abstract function fun1(); abstract function fun2(); 2.什么是抽象类? 只要一个

PHP抽象方法、抽象类以及接口

 1.什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰. 例如: abstract function fun1(); abstract function fun2();  2.什么是抽象类? 只要一个类里面有一个方法是抽象方法,那么这个类就定义为抽象类,抽象类也要使用"abstract&quo

php中的抽象方法和抽象类

1.什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰. 例如: abstract function fun1(); abstract function fun2(); 2.什么是抽象类? 只要一个类里面有一个方法是抽象方法,那么这个类就定义为抽象类,抽象类也要使用"abstract"

PHP中抽象方法、抽象类和接口的用法

在类中,没有方法体的方法就是抽象方法. abstract 可见性 function 方法名称(参数1,.....);      // 如果没有显示地指定可见性,则默认为public 如: public function hello($args); abstract function work();            // 修饰符abstract,也可以省略 abstract class 类名{ 属性; 方法; 抽象方法; } 抽象类的特点: 抽象类不能实例化,只能被继承. 抽象类不一定有抽象

【PHP面向对象(OOP)编程入门教程】19.抽象方法和抽象类(abstract)

在OOP语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法做为外部代码访问其的接口.而抽象方法就是为了方便继承而引入的,我们先来看一下抽象类和抽象方法的定义再说明它的用途. 什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法,所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰: 例如: abstract function fun1(); abstract