`
929118967
  • 浏览: 21748 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
博客专栏
Fcebf22e-9505-38db-b3f2-65fdcc3fd6a5
java开发的深入浅出
浏览量:7116
文章分类
社区版块
存档分类
最新评论

java笔记之抽象类和接口

 
阅读更多

前言

java笔记之抽象类和接口是开发人员的设计工具

正文

1.抽象类

客观存在的一类事物,当这类事物都是抽象的,无法具体的描述。

1)语法:

修饰符 abstract class 类名{

}

2)特点:

抽象类是一个不具体的类

抽象类可以包含不具体的行为

是一个规范,用来约定子类或者小类型的行为

3) 抽象类的特性

抽象类不能进行实例化

使用abstract关键字定义抽象类

抽象类中的抽象方法也需要用abstract修饰,同时不能存在方法体

抽象类中不一定有抽象方法

有抽象方法的类,一定是抽象类

如果子类继承了抽象类,那么子类必须实现抽象类的抽象方法;如果子类继承了抽象类,而不去实现抽象类,子类也必须为抽象类

如果抽象类中没有定义构造器,那么javac会自动加上默认构造器;如果抽象类中有了有参构造器,且没声明无参构造器,那么在子类构造器中需要显式的调用抽象类的构造器。

4)抽象类的使用场景

抽象类用于分析和设计的工具

抽象类是一个规范,用来约束子类

5)抽象类与类的区别:

1)相同点:

语法上都要使用class关键字

都包含属性和方法

都可以进行方法的重载

如果没有提供构造器,那么javac会自动加上

子类都可以重写父类的方法

具体的子类在创建对象时,都需要调用父类的构造器

都可以定义引用来指向子类或小类型所创建的对象(多态)

多可以被抽象类和具体类所继承

2))不同点

抽象类不能进行实例化

抽象类可涵有抽象的方法

2.javaBean规范:(针对实体类)

是一种编程习惯。按照此规范定义出来的java类使用起来比较方便。

1)内容:

必须有包

必须为属性提供getter和setter

必须提供无参构造器

实现序列化(I/O流)

重写hashCode(),eqauls(),toString()

3.接口:

是一种规范和约束,用来限定实现类里面包含的行为

1)目的:

为了解决java单继承的弊端。同时区分出解决问题的中心

2)语法:

Interface 接口名{

接口内容(常量、抽象方法)

}

注:类实现接口的语法:

修饰符 class 类名 implements 接口1,接口2{

类体

}

3)接口的特性:

接口不能实例化(除非是有匿名内部类实现它)

接口中包含的方法全都是抽象方法,属性均为常量(public static final 数据类型 变量名=值)

4)接口可以多继承接口

语法:

Interface 接口名 extends 接口1,接口2{

接口体

}

5)借口可以定义变量引用指向实现类的对象(接口的多态)

注:接口可以作为变量、参数和返回值来引用实现类的对象

4.软件的设计原则:

高内聚,低耦合

高内聚:在类内部,关联度越高越好

低耦合:在类与类之间,关联度越低越好

1)实现方式:

高内聚:一个类只做一件事

低耦合:面向接口编程

注:面向接口编程:

在软件开发过程中,在类中调用另一个类的方法。他们之间的关联度很高;那么可以使用接口替代类,减低他们之间关联度(可进一步采用工厂模式来屏蔽对象的创建过程)

5.面向接口的编程步骤:

1)抽取接口:

注:根据名词中存在的相同的行为i,根据is-a关系去建立,根据系统的重点研究对象来确定使用继承(抽象类、类)或实现(接口)

2)定义接口:

将使用的行为在接口中定义出来,形成规范和约束

3)建立实现类并实现接口

注:好处,提高了系统的可扩展性和可维护性。

总结

采用接口降低调用者与被调用者之间的耦合度:具体做法为,采用接口引用实现类对象,也可采用接口引用通过工厂创建的对象。




分享到:
评论

相关推荐

    Java笔记抽象类和接口

    通过上述讨论可以看出,抽象类和接口虽然有一些相似之处,但它们之间存在着本质的区别。选择使用哪种机制取决于具体的需求和设计目的。在实际项目中,合理地运用抽象类和接口能够提高代码的复用性和灵活性,进而提升...

    Java-抽象类和接口--学习笔记.docx

    Java是一种面向对象的编程语言,其中的抽象类和接口是两个重要的概念,它们在软件设计中扮演着不可或缺的角色。在本篇Java学习笔记中,我们将深入探讨这两个概念及其作用。 首先,我们来看抽象类。抽象类是那些包含...

    java学习笔记接口和抽象类

    java学习笔记接口和抽象类

    稳稳当当学java之抽象类和接口(11)

    本人的笔记,关于java基础中抽象类和接口的内容 包括 1.作业回顾 2.继承规则二 3.方法重写 4.多态 5.final修饰符 6.抽象类 7.接口 8.练习

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    在Java编程语言中,`final`关键字、抽象类和接口是面向对象编程的重要概念。它们各自扮演着不同的角色,帮助我们构建更健壮、可维护的代码结构。 首先,`final`关键字在Java中具有多种用途。它可以用来修饰类、方法...

    抽象类与接口的练习

    在编程世界中,Java、C#等面向对象的语言中,抽象类和接口是两种重要的设计模式,它们都用于实现多态性,但各有其特点和使用场景。本练习旨在帮助开发者深入理解这两种概念,通过实践巩固理论知识。 首先,我们来...

    java中对象转型多态抽象类接口笔记.doc

    ### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。

    java笔记 java笔记

    - **匿名内部类**:没有名字的内部类,通常用于实现接口或继承抽象类。 ##### 7.12 集合 - **集合接口类层次**:如`Collection`、`Set`、`List`等。 - **集合类层次**:如`ArrayList`、`LinkedList`、`HashSet`等...

    java超强笔记

    在面向对象高级特性的部分,笔记可能包含抽象类、接口、内部类、匿名类、枚举,以及泛型和注解的使用。这些特性使得Java代码更加灵活且易于维护。 最后,笔记可能还会涉及一些设计模式,如单例模式、工厂模式、观察...

    java全套笔记 来自狂神说java笔录.zip

    2. **面向对象**:讲解类、对象、封装、继承、多态等核心概念,以及构造函数、抽象类、接口、访问修饰符等内容。 3. **集合框架**:介绍ArrayList、LinkedList、HashSet、HashMap等容器,以及List、Set、Map接口和...

    黑马java教程知识点笔记整理

    接口是完全抽象的类,只包含常量和抽象方法。接口用于定义行为规范,实现多继承。内部类包括成员内部类、局部内部类、匿名内部类,它们可以访问外部类的私有成员。 【泛型与注解】 泛型提供类型安全,允许在编译时...

    个人整理java笔记

    ### 四、抽象类与接口 - **抽象类**: - 抽象类是一种不能被实例化的类,通常用于提供一个基础框架。 - 抽象类可以包含抽象方法(只有方法签名没有实现),也可以包含具体方法(有实现)。 - 如果一个类包含了...

    JAVA经典教材笔记.pdf

    面向对象(高级)章节继续深入探讨面向对象的相关概念,包括继承、final关键字、抽象类和接口的基本概念,以及对象的多态性等。继承是面向对象编程中的一个核心概念,它允许一个类继承另一个类的属性和方法。多态性...

    java笔记 java笔记 java笔记

    Java编程语言是全球广泛使用的高级编程语言之一,尤其在企业级应用开发中占据主导地位...这份"java笔记"深入浅出地讲解了Java的各个方面,无论是初学者还是有经验的开发者,都能从中受益,提升对Java的理解和应用能力。

    Java学习笔记接口包装类

    在Java编程语言中,接口(Interface)和包装类(Wrapper Class)是两个核心概念,它们在实际开发中扮演着至关重要的角色。接口提供了一种定义规范的方式,而包装类则是基本数据类型与对象世界之间的桥梁。现在让我们...

    韩顺平java笔记完整版

    理解类的构造器、访问修饰符、抽象类和接口的区别是关键。 4. **异常处理**:Java使用try-catch-finally结构来捕获和处理运行时错误,还有自定义异常的创建。 5. **集合框架**:Java提供了丰富的集合类,如...

    java笔记以及案例

    面向对象编程(Object-Oriented Programming,OOP)是Java的核心,它将现实世界中的问题抽象成类和对象,通过封装、继承和多态来构建复杂的软件系统。封装意味着隐藏对象的内部细节,只对外提供公共接口;继承允许...

    阿里云大学java笔记(三).docx

    Java编程语言中,抽象类和接口是两种重要的概念,它们都是用于实现多态性和封装,但有着明显的区别。抽象类是一种不能被实例化的类,它可以用作其他类的基类,提供部分或全部抽象方法(没有方法体的方法)。在定义...

    java笔记_Java笔记_

    15. **接口与抽象类**:接口定义行为规范,抽象类则作为其他类的基类,两者都是实现多态的方式。 16. **泛型**:泛型提供类型安全,防止在集合中存储不兼容的类型。 17. **枚举**:枚举类型用于定义一组固定的常量...

Global site tag (gtag.js) - Google Analytics