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

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 抽象类与接口的练习,包括代码及注释,个人笔记

    Java笔记抽象类和接口

    主要针对Java当中易混淆的抽象类和接口做详细描述,同时分清楚Java书写的行文规范,从而对抽象类和接口有更加具体的了解

    java学习笔记接口和抽象类

    java学习笔记接口和抽象类

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

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

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

    JAVA学习笔记,java知识点总结

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

    好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...

    观看韩顺平学习整理java的笔记到异常

    抽象类--模板设计模式 9 接口 9 内部类 11 匿名内部类的使用(重要!!!!!!!) 13 成员内部类的使用 13 静态内部类的使用 14 枚举的二种实现方式 14 自定义类实现枚举 14 使用 enum 关键字实现枚举注意事项 15 enum 用...

    java语言程序设计 java编程笔记 由浅入深的笔记 共32份 全套资源.rar

    【完整课程列表】 API集合.docx ...接口和抽象类以及实现类.docx 枚举enum.docx 设计模式.docx 数组.docx 网络编程.docx 线程和内部类.docx 循环和类对象.docx 异常.docx 正则表达式.docx 总结.docx

    Java 面向对象笔记

    Java面向对象笔记 Java面向对象知识点分成7部分:对象类、继承多态、构造器、类包内外访问权限、各种静态内部类、抽象函数、接口

    Java开发详解.zip

    020609_【第6章:面向对象(高级)】_抽象类与接口的应用笔记.pdf 020610_〖第6章:面向对象(高级)〗_实例分析:宠物商店笔记.pdf 020611_【第6章:面向对象(高级)】_Object类笔记.pdf 020612_【第6章:面向对象...

    java学习笔记 初学者必读

    7.7. 抽象类 7-24 7.8. 接口 (模板方法模式) 7-25 7.9. Object 类 7-27 7.10. 封装类 7-28 7.11. 内部类 7-29 7.11.1. 内部类的分类 7-29 7.11.2. 成员内部类 7-29 7.11.3. 局部内部类 7-30 7.11.4. 静态内部类 7-30...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    JAVA(J2SEJ2EE)学习笔记pdf

     内容包括:j2se语法、循环控制、OOP设计、方法设计、重写、重载、抽象类/方法、接口、异常处理、多线程、swing。以及部分oracle内容。   本笔记是pdf格式,经过我多次排版,结构清晰接近出版物,内容充实,示例...

    Java基础笔记知识点.rar

    JavaSE 之前整理的笔记,一共16章:1.Java概述,2....面向对象4(抽象类 接口 包装类),8.GUI编程--awt,9.GUI编程--计算器案例,10.GUI编程--Swing,11.集合,12.多线程,13.IO流,14.网络编程,15.JDBC编程,16.异常处理

    java面向对象基础笔记

    java语言概述,java语言基础,程序的控制语句,数组,面向对象基础,继承,多态,抽象类,接口,异常处理,集合类,输入输出流,多线程,JDBC连接数据库等简单的java基础知识。 适合想学习java语言的同学们下载。 ...

    Java面向对象程序设计笔记

    7. 接口与抽象类的区别: 15 8. 设计模式 15 单一设计模式: 15 策略模式: 16 模板模式: 16 组合设计模式: 16 9. 多态 16 10. 内部类 17 第五章 Java集合对象 18 1.List 18 2.Set 18 3.Map...

    020609_【第6章:面向对象(高级)】_抽象类与接口的应用笔记.pdf

    java课程学习资料 若有侵权,请联系本人进行移除。

    Java 知识汇总(资源,工具,笔记,源码,文章,文档分类整理).zip

    面向对象基本语法,抽象类,接口,内部类等;常用类api使用;常用算法,常用加密算法;Rxjava的使用;Http客户端接口测试,Okhttp的使用,HttpClient的使用,HttpUrlConnection的使用;集合的常见用法; 线程的基本知识;反射的...

    Java学习第四周笔记总结

    这周学习包括Java的封装和继承,方法重写和多态,抽象类和接口等相关内容。

Global site tag (gtag.js) - Google Analytics