一、类 class

定义:具有相同属性(特性)和方法(行为)的一类事物 的抽象的总称

例如:人类,动物,车,屌丝类。是一种类别,世界上所有的事物都可以分类,在计算机中java都能进行对应和体现

类的三大特性:封装,继承,多态
封装:属性的私有化
继承:针对类
多态:针对方法

  1. 重载 重写
  2. 先上转型 针对参数

这篇博客有类的三大特性的详细解释:点击进入

二、属性 attribute property(相同特性) 成员变量

属性定义:描述类中具有某种特性

成员变量和普通变量的区别:

  1. 作用域(生命周期):
    成员变量:全局变量,在类中任何方法都能使用。存活在整个类中
    普通变量:局部变量,存在于某个方法内,存活周期就在其方法内。
  2. 内存
    成员变量:存放在内存中的堆
    普通变量:存放在内存中的栈

三、方法 method

定义:描述类中的某一行为,放在属性定义的下面
例如:人有吃喝拉撒睡,还有撩妹,都可定义一个方法去实现

方法分类:有无参数,有无返回值

总结:类包含属性和方法

注意:软件工程中说明,每一个方法是独立,功能单一。不能出现一个方法执行n个逻辑,如果真的有,也要把逻辑分到其他的方法中去实现。

问:为什么要定义类?
答:是为了使用。
问:如何使用?
答:如果你没对象的话,可以new一个对象出来,这样你就不孤单啦!

四、对象

定义:用于描述客观事物的一个实体

  1. 对象是类的实体。
  2. 存放在内存的堆中
  3. 使用对象,都是用对象调用方法
    面向对象的特性:指挥

五、抽象类

抽象类=普通类 + 抽象方法
修饰符:abstract

  1. 抽象类是类
  2. 多了抽象的方法,类必须是抽象类
  3. 抽象方法没有方法体。
  4. 抽象类不能实例化,不能创建对象
  5. 抽象类必须有子类,必须实现所有的抽象方法。
  6. 如果子类没有实现所有的抽象方法,子类也是抽象类。
  7. 是类,仍旧满足多态特性,所以方法的参数使用抽象父类的引用。

在开发过程中,对于有些方法一定要实现,则会被此方法在父类中声明为抽象的方法,对于有些方法不一定实现,在抽象父类中声明成普通的方法,子类可以选择性的对父类的普通方法进行重写来完成相应的逻辑。
例如listener类 Observer观察者模式

  1. 代码 语法
  2. 代码映射出人类的注解 int age=18;
  3. 开发应用中
  4. 面试中

例如:
Door 门 abstract

Open{}
Close{}

普通门 防盗门 保险柜门

面向抽象编程,不面向具体编程。
抽象类的限制:

  1. 抽象类不能使用final关键字
  2. 抽象类虽不能实例化,但是可以像普通类一样,拥有属性和构造方法,子类可以通过调用抽象父类的构造方法来完成子类自己的构造。

六、接口

**定义:多个类共同的行为规范,这些行为是与外部交流的通道,通常是定义一组公用方法

定义接口关键字:interface
接口继承关键字:extends

  1. 接口定义方法只能是抽象方法(public abstract),类方法,或者默认方法,普通方法不能有方法体,但是类方法、默认方法必须有方法体
public interface Output {//  接口里定义的成员变量只能是常量int MAX_CACHE_LINE = 50;
//  接口里定义的方法只能是普通方法void out();void getData(String msg);
//  在接口中定义默认方法,需要使用default修饰default void Printable(String... msgs) {for(String msg:msgs) {System.out.println(msg);}}
//  在接口中定义类方法,需要使static修饰static String staticTest() {return "在接口里的类方法";}}
// 注意 一个java源文件里最多只能有一个public接口,
//如果一个源文件里定义了一个public接口,
//则该源文件的主文件名必须与该接口名相同
//  接口主要有如下用途
//  定义变量,也可用于强制类型转换
//  调用接口中定义的常量
//  被其它类实现
public class OutputFileldTest {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(lee.Output.MAX_CACHE_LINE);
//      赋值会出现编译异常//     lee.Output.MAX_CACHE_LINE = 20;System.out.println(lee.Output.staticTest());}}
  1. 接口支持多继承。类只能单继承
interface interfaceA{int PROP_A = 5;void testA();
}interface interfaceB{int PROP_B = 6;void testB();
}interface interfaceC extends interfaceA,interfaceB{int PROP_C = 7;void testC();
}public class InterfaceExtendsTest {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(interfaceC.PROP_A);System.out.println(interfaceC.PROP_B);System.out.println(interfaceC.PROP_C);}
}

接口主要用途:

  1. 定义变量,也可用于强制类型转换
  2. 调用接口中定义的常量
  3. 被其它类实现

接口和抽象类异同:

  1. 都不能被实例化,都位于继承树的顶端,用于被其他类实现和继承
  2. 都可以包含抽象方法,实现接口或继承抽象类的普通方法都必须实现这些抽象方法。
  3. 接口只能包含抽象方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。
  4. 接口不能定义静态方法,抽象类可以定义静态方法。
  5. 接口只能定义静态常量,不能定义普通成员变量。抽象类都可以。
  6. 接口不包含构造器,抽象类包含,但是并不用于创建对象,而是让子类调用完成属于抽象类的操作。
  7. 接口不包含初始化块,抽象类则完全包含
  8. 一个类最多只能有一个直接父类,包括抽象类,但是一个类可以直接实现多个接口,弥补java单继承不足的问题。

java基础-类-抽象类-接口(自学笔记)相关推荐

  1. [Java基础]类和接口的关系

    类和接口的关系:

  2. 初学Java基础学习——抽象类和接口的区别

    初学Java基础学习--抽象类和接口的区别 一.关键字 1)抽象类的关键字 abstract class A{//定义一个抽象类: } class Test extends A{//子类使用exten ...

  3. 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

    day01 win 7系统打开DOS有趣方法:按住shift+右键,单击"在此处打开命令窗口"(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复 ...

  4. 3、java基础:抽象类与接口的区别

    抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样 ...

  5. java 类 抽象类 接口_Java抽象类和接口

    抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方 ...

  6. Java基础概念 | 抽象类与接口

    抽象类与接口 定义 用法 定义 抽象类:包含抽象方法的类. 包含抽象方法的类必须通过abstract关键字声明为抽象类,否则编译器会报错. 抽象方法需要通过abstract关键字进行声明. 抽象类可以 ...

  7. java 实现类转接口_JAVA 基础 / 第二十九课:接口与继承 / JAVA中的对象转型

    2018-03-19 一.明确引用类型与对象类型的概念 引用类型与对象类型的概念 在这个例子里,有一个对象 new ADHero(), 同时也有一个引用ad 对象是有类型的, 是ADHero 引用也是 ...

  8. 传智 刘意 2015年Java基础视频-深入浅出精华版 笔记 day24~day26(2016年4月26日13:11:30)

    day24 1.多线程(JDK5之后的Lock锁的概述和使用)   Lock:           void lock(): 获取锁.           void unlock():释放锁.     ...

  9. Java基础知识 廖雪峰教程笔记

    Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...

最新文章

  1. nio selector
  2. java 给窗口加菜单_程序求助:如何给窗口添加菜单?
  3. 初级脚本Ubuntu18-20.04版本以上设置静态IP地址
  4. 写文章 使用conda管理python环境
  5. 菜鸟requireJS教程---2、基本知识
  6. 【codevs 1315】1315 摆花2012年NOIP全国联赛普及组(dp)
  7. onenote怎么同步到电脑_详解onenote保存与同步④:本地笔记奇葩的丢失经历
  8. java mysql 多表查询_解析Mysql多表查询的实现
  9. Codeforces Round #703 (Div. 2) Guessing the Greatest C1 C2 二分
  10. java修改原有txt文件_(转)Java创建txt文件并进行读、写、修改操作
  11. 第二次提交文件 merge上次版本
  12. python学习笔记(七):面向对象编程、类
  13. IO流之流的操作规律
  14. 前端笔记之Vue(五)TodoList实战拆分store跨域练习代理跨域
  15. IE缓存文件提取器 视频,音频,图片一网打尽
  16. 搭建离线版keras中文文档
  17. SAPscript Forms 教程
  18. 用Python实现一个电影订票系统
  19. 联想硬盘保护系统安装
  20. ffmpeg下载安装,以及springboot 整合视频点播学习

热门文章

  1. 浙大ZOJ 1005 Jugs问题解决
  2. 东方国信携手Cloudera 共创Hadoop生态圈辉煌
  3. Ubuntu自带远程连接工具Remmina
  4. 两个ip是否在同一网段?
  5. SpringCloud 学习笔记系列03--Hystrix熔断器
  6. Invalid bound statement (not found) 终极解决办法
  7. PHP语言编程魔方,PHP面向对象--一些魔方方法
  8. offer选择:创业公司 VS 大厂外包
  9. react 父组件调用子组件方法--通过 props 实现
  10. 使用Python进行数据分析——线性回归分析