抽象

概念:当一个类中没有足够的信息描述一个现实生活中具体存在的事物,那么这个类就是抽象类。

抽象类一般是对概念领域中的描述。

语法

[访问修饰符] abstract class 类名{
}

如:

public abstract class Person{
}

特点:

1.抽象类不能够创建对象,但是可以有构造方法,抽象类的构造方法是给子类调用的。如:


public abstract class Person{
  //这个方法是正确的
  public Person(){
  System.out.println("构造方法");
  }
  //但是不能这样创建对象
  Person per = new Person();
}

2.抽象类中可以包含抽象方法,但是静态方法不能是抽象的。

抽象方法的定义语法:

[访问修饰符] abstract 返回值类型  方法名称(参数列表);
public abstract class Person{
  //抽象方法
  public abstract void sleep();
  //静态方法
  public static void say(){
System.ou.println("你好");
}
}

如果一个类中有一个抽象方法,那么这个类一定是抽象类,但是一个抽象类中不一定有抽象方法。

子类继承了抽象类,那么子类一定要实现父类中所有的抽象方法,否则子类也要声明为抽象类。

接口

接口就是用来声明功能(方法),在接口中只有方法的声明和常量。

定义语法:

[访问修饰符] interface 接口名称{
}

接口特点:

接口中没有构造方法,也不能够创建接口的对象。

接口中的方法由类来实现。

接口中定义的方法,访问修饰符永远都是public。

接口中定义的变量永远都是常量。

接口中常量被public static final 修饰。

接口可以实现多继承。

接口实现多继承

语法:

[访问修饰符] interface 接口名称 extends 接口1,接口2…{
}

实现接口通过implements关键字来实现

语法:

[访问修饰符] class 类名 implements 接口名称{
}

实现接口,那么就要实现接口中所有的方法,否则当前类要定义为抽象类。

static关键字

前提:

实例变量和类变量

实例变量指的是通过类的对象去调用

类变量指的是无需通过类的对象调用,直接用类名调用即可。

作用:

static可以修饰变量成为静态变量或者类变量

static修饰的变量属于类,不属于某个对象,而且不管创建多少个对象,静态变量只有一个副本,也就是说所有对象使用的类变量是同一个。

static修饰的变量可以直接通过类名调用。

static修饰方法成为类方法,静态方法直接通过类名调用即可。

static可以修饰代码块,作用就是用来给静态变量初始化的。

语法:

static{
}

特点:

在静态方法中只能调用静态的方法或变量

在非静态方法中可以调用静态方法或静态变量

在静态方法中不能使用this,super关键字

局部变量不能是static修饰的。

Java基础10一面向对象的更多相关文章

  1. Java基础语法(11)-面向对象之关键字

    title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...

  2. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  3. Java基础教程:面向对象编程[1]

    Java基础教程:面向对象编程 内容大纲 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台 ...

  4. Java基础教程:面向对象编程[3]

    Java基础教程:面向对象编程[3] 内容大纲 基础编程 获取用户输入 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入.我们可以查看Ja ...

  5. Java基础语法(9)-面向对象之类的成员

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  6. JAVA基础知识之面向对象编程知识汇总

    JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...

  7. Java基础一:面向对象的特征

    经过16年校招,自己在Java基础方面也算有了一个质的飞跃,从原来知其然,到现在知其所以然,现将学习心得总结于此. 首先需要知道类和对象是什么? 维基百科定义类为: an extensible pro ...

  8. 零基础学Java(10)面向对象-使用LocalDate类完成日历设计

    前言 在我们完成这个日历设计前,需要了解Java中的预定义类LocalDate的一些用法 语法 LocalDate.now() // 2022-07-01 会构造一个新对象,表示构造这个对象时的日期. ...

  9. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

随机推荐

  1. BZOJ 1864: [Zjoi2006]三色二叉树 树形DP + 读入

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 题解:本题大水 ...

  2. 【转载】java 监听文件或者文件夹变化的几种方式

    1.log4j的实现的文件内容变化监听 package com.jp.filemonitor; import org.apache.log4j.helpers.FileWatchdog; public ...

  3. case when用法小结

    case 对比字段 when 值 then 输出结果 when 值 then 输出结果 ....else 输出结果 end 对比字段可以不在case后面确定 可以把条件直接写在when后面,如果对比字 ...

  4. [luogu1640 SCOI2010]连续攻击游戏 (二分图最大匹配)

    传送门 Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某 ...

  5. [luogu4478 BJWC2018] 上学路线 (容斥原理+拓展lucas)

    传送门 Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路 ...

  6. 63.es中的type数据类型

    主要知识点 理解es中的type数据类型     一.type的理解 type是一个index中用来区分类似的数据的,但是可能有不同的fields,而且有不同的属性来控制索引建立.分词器.field的 ...

  7. 32.es读请示内部分发原理

    当客户端发送一次读请求时,大致会经过以下几个步骤 1.客户端发送一个请求过去,es的一个node接收到这个请求(随机的node),这个node就被es内部分配成coordinating node(协调 ...

  8. vue+ElementUI 分页

    现在写的Vue+ElementUI是自己写的是文档上的死数据,所以在分页上自己分割了一下,如果有接口话,会方便一点,使用的是分页的完整功能.都差不多啦! 撸起来 <template> &l ...

  9. Syncfusion在WinPhone8.1实现统计图

    using Syncfusion.UI.Xaml.Charts; public static SfChart InitCompareChart(string fundName, double tenT ...

  10. 洛谷 P2056 BZOJ 2743 [HEOI2012]采花

    //表示真的更喜欢洛谷的题面 题目描述 萧芸斓是 Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了 n 朵花,花有 c 种颜色(用整数 ...