抽象方法

类和对象

匿名 (未验证) 提交于 2019-12-03 00:05:01
类和对象 面向对象概述 所谓对象就是某种事物的抽象(功能),抽象包括数据抽象和过程抽象两个方面,数据抽象就是定义对象的属性;过程抽象就是定义对象的操作(行为)。 面向对象的三(四)大特征:封装,继承,多态,(抽象)。 封装 :把描述对象属性的变量及实现对象功能的方法结合起来,定义一个程序单位,并保证外界不能任意 更改内部的属性,不能任意调动内部的方法接口。 继承 :大大增强了代码的可复用性,提高了软件的开发效率,为程序的修改扩充提供了材料。Java 不支持多继 承(菱形继承方式),为了弥补 Java 不支持继承带来的子类不能享用多个父类的成员缺憾,我们在后面的学习中会 引入“接口”这个概念。 多态 :同一个方法名,根据被调对象的不同,实现了不同的行为。 主要分成静多态(方法的重载)和动多态(继承,重写,向上造型)。 抽象 :使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。 类和对象概述 1. 类的概念 类是一种 新的数据类型 ,类定义数据类型的属性(变量,字段),行为(方法)。对象是基于类的具体实现,又称为类的实例。 类是一个抽象概念 , 对象是类的具体实现 类所定义的对象是不唯一的,依需求(需要)而定 例: 定义一个类,人

Java基础之抽象类与接口

流过昼夜 提交于 2019-12-02 23:57:06
1.抽象类 抽象就是从多个事物中将共性的,本质的内容抽取出来。在Java中用abstract关键字修饰class来表示抽象类。 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。 public abstract class Animal { } 关于抽象类和抽象方法的使用注意: (1)抽象类和抽象方法必须使用abstract关键字修饰。 (2)抽象类不能实例化,即使有构造函数。只能使用多态的方法来实例化。 abstract class Animal { } class Cat extends Animal { } Animal obj = new Cat(); (3)抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类。 (4)关于抽象类的子类,要么全部实现了该抽象类的抽象方法,要么该子类也是抽象类,只实现或不实现部分抽象方法。 (5)抽象类的成员变量可以是变量,也可以是常量(用final修饰)。 (6)abstract关键字只能修饰类和方法,不能修饰成员变量(属性)。 (7)抽象类也是可以有构造方法的,该构造方法可以被子类调用来初始化抽象类的成员变量。 abstract class Animal { private String name; private int age; public Animal(String name

abstract和virtual

匿名 (未验证) 提交于 2019-12-02 23:48:02
1、abstract ・ 抽象方法就是没有实现的,必须是形如: ・ ・ 抽象类不能被实例化,只能被继承。 ・ 抽象类的子类必须实现每个抽象方法。 ・ 抽象类里面除了可以有抽象方法以外,也可以有普通的方法。 ・ 抽象类的构造函数可以省略,编译器会自动加上,但是不能是一个抽象方法,而只能是一个普通的构造函数。 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Employee employee = new Employee(); 6 Console.WriteLine(employee.ID); 7 Console.ReadKey(); 8 } 9 } 10 11 public abstract class Base 12 { 13 private Guid _id; 14 15 public Base() 16 { 17 this._id = Guid.NewGuid(); 18 } 19 20 public Guid ID 21 { 22 get { return this._id; } 23 } 24 } 25 26 public class Employee : Base 27 { 28 29 } 小结:简单概括一下,抽象类不可以直接实例化,他可以有n个(n>=0)抽象方法,这些抽象方法子类必须实现。

接口和抽象类的区别

匿名 (未验证) 提交于 2019-12-02 23:47:01
接口的作用 1、接口里的方法都是抽象方法,接口之定义规范,不包含实现方法 2、接口的本质就是契约 接口可以多继承,可以定义常量和抽象方法 1、 子类必须实现接口里面的抽象方法 2、接口不能实例化 转载请标明出处: 接口和抽象类的区别 文章来源: 接口和抽象类的区别

什么是接口?

匿名 (未验证) 提交于 2019-12-02 23:43:01
接口就是多个类的公共规范。 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 如何定义一个接口的格式: public interface 接口名称 { // 接口内容 } 备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class。 如果是Java 7,那么接口中可以包含的内容有: 常量 抽象方法 如果是Java 8,还可以额外包含有: 3. 默认方法 4. 静态方法 如果是Java 9,还可以额外包含有: 5. 私有方法 接口使用步骤: 接口不能直接使用,必须有一个“实现类”来“实现”该接口。 格式: public class 实现类名称 implements 接口名称 { // … } 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。 实现:去掉abstract关键字,加上方法体大括号。 创建实现类的对象,进行使用。 注意事项: 如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。 文章来源: https://blog.csdn.net/qq_40246175/article/details/92422815

C#抽象类

匿名 (未验证) 提交于 2019-12-02 22:06:11
一、继承 什么是继承 :继承是允许重用现有类去创建新类的过程。分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性。 1 、继承 C# 中的类: C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object)。 派生类继承基类的语法如下: 1 using System; 2 public class Person 3 { 4 //这是基类 5 } 6 public class Student:Person 7 { 8 //这是派生类 9 } 注:派生类继承基类时用“:”符号连接,派生类继承基类的所有非私有成员变量和方法。 2 、调用基类的构造函数: 如果对类没有定义显式构造函数,则编译器将提供默认的构造函数,以初始化这些类的成员字段。但是,如果显式添加了构造函数,就可以有效控制整个构造过程。 示例: 1 using System; 2 namespace Jicheng 3 { 4 //基类 5 public class Person 6 { 7 public string _name; 8 public uint _age; 9 //基类的构造函数 10 public Person(string name,uint age) 11 { 12 this._name = name; 13 this._age = age; 14

Java中抽象类 abstract

匿名 (未验证) 提交于 2019-12-02 21:53:52
概念: 语法: 抽象类的特点: 抽象方法一定在抽象类中 抽象类有构造方法,但是不可以用new创建对象 ,因为可能会调用抽象方法,但是抽象方法没有方法体,调用没有意义 抽象类中的抽象方法要被使用,必须由其子类重写其所有的抽象方法 ,通过建立子类对象去调用重写后的方法,如果只重写了部分的抽象方法,进而继承了剩下的抽象方法,则子类也必须是抽象类 抽象类中可以包含抽象方法,也可以包含非抽象方法 当一个方法被抽象修饰后,他所在的类必须是抽象类 如果一个抽象类中不定义抽象方法,那么定义这个类的目的只有一个,就是不让类创建对象 ) 文章来源: Java中抽象类 abstract

Java笔试面试题(三)

匿名 (未验证) 提交于 2019-12-02 21:53:52
每日一句:想,都是问题;做,才是答案。 构造器Constructor是否可被Override? 构造器Constructor不能被继承,因此不能重写Override,但是可以被重载Overload。 接口是否可继承接口?抽象类是否可实现(implement)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的类方法? 接口可以继承接口。抽象类可以实现接口。抽象类可以继承具体类。抽象类中可以有静态的类方法。 写clone方法时通常都有一行代码,是什么? clone有缺省行为,super.clone(); 因为首先要把父类中的成员复制到位,然后才是复制自己的成员。 面向对象的特征有哪些方面? (1)封装 封装是保证软件部件具有优良的模块性基础,封装的目标就是要实现软件部件的“高内聚,低耦合”,防止程序相互依赖性而带来的变动影响。 (2)抽象 抽象就是找出一些事物的相似性和共性之处,然后将这些事物归为一个类,这些类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。 (3)继承 在定义和实现一个类的时候,可以在一个已存在的类的基础上来进行,把这个已存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制

深入理解Java的接口和抽象类

匿名 (未验证) 提交于 2019-12-02 21:53:52
深入理解Java的接口和抽象类   对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:   一.抽象类   二.接口   三.抽象类和接口的区别 一.抽象类   在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: 1 abstract void fun();   抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。   下面要注意一个问题:在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法,只是用abstract修饰的话也是抽象类。也就是说抽象类不一定必须含有抽象方法。个人觉得这个属于钻牛角尖的问题吧,因为如果一个抽象类不包含任何抽象方法,为何还要设计为抽象类?所以暂且记住这个概念吧,不必去深究为什么。 1 2 3 [ public abstract class ClassName {

【java基础】第11天――接口、多态

匿名 (未验证) 提交于 2019-12-02 21:53:52
今日内容介绍 1、接口 2、多态 =======================第一节课开始============================================= * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 请记住:一切事物均有功能,即一切事物均有接口。 * A: 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字。 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。这点可以让我们将接口看做是一种只包含了功能声明的特殊类。 * B : 定义格式 public interface 接口名 { 抽象方法1; 抽象方法2; 抽象方法3; } * C: 定义步骤 使用interface代替了原来的class,其他步骤与定义类相同: 接口中的方法均为公共访问的抽象方法 接口中无法定义普通的成员变量 * A: 类与接口的关系 类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。 其他类(实现类)实现接口后,就相当于声明: