抽象类与接口的定义:

package cn.review.day02;
/**
* 抽象类
* 定义:
* 1.抽象类使用关键字abstract修饰
* 2.抽象方法必须定义在抽象类中,抽象方法没有方法体,抽象方法必须使用abstract关键字修饰。
* 3.抽象类中的抽象方法在子类中必须实现(即重写)。
* 4.抽象类中可以定义非抽象方法,也可以定义属性。
* 5.抽象类不可以new,因为调用抽象方法没有意义。
*
* 抽象类是对事物的抽象,当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。目的是只抽取功能定义,而不抽取功能主体。
* 例子:比如人,每个人都有名字和年龄,我们可以把人类作为抽象类,不同的人去继承这个抽象类,实现其中同样的方法。
* @author dyq
*
*/
public abstract class Person {
public abstract int getAge();
public abstract String getName();
static {
System.out.println("抽象类中的静态代码块");
}
public static void methodAge() { } }
class Teacher extends Person{
private String name;
private int age;
public Teacher(String name,int age) {
this.name = name;
this.age = age;
}
@Override
public int getAge() {
return this.age;
}
@Override
public String getName() {
return this.name;
}
}
class Worker extends Person{
private String name;
private int age;
public Worker(String name,int age) {
this.name = name;
this.age = age;
}
@Override
public int getAge() {
return this.age;
}
@Override
public String getName() {
return this.name;
} } /**
* 接口的定义
* 1.接口类使用interface来声明
* 2.接口中的方法必须是抽象的,默认都是隐式抽象的,方法都被隐式的指定为public abstract(只能是public abstract的,使用其他的修饰符都会报错)
* 3.接口中可以有变量,但是接口中的变量都是被隐式的指定为public static final变量(只能用public修饰符,使用其他的会报错)
* 4.接口中的方法是不能在接口中实现的,只能在实现接口的类中实现。
*
* 接口是对行为的抽象,泛指供别人调用的方法或者函数。
* 比如一下,我们将吃什么和怎么吃的行为使用接口声明,然后使用学生类来实现这个接口。
* @author dyq
*
*/
interface Eat{
static final String str = "吃";
public String eatFoods();
public String getFoods();
}
class Student implements Eat{
private String food;
public Student(String food) {
this.food = food;
}
@Override
public String eatFoods() {
return str + this.food;
}
@Override
public String getFoods() {
return this.food;
}
}

抽象类与接口的实现以及区别:

package cn.review.day02;
/**
* 抽象类,接口使用,以及比较
* 抽象类与接口的区别:
*
* 语法方面:
* 1.抽象类中的方法可以有方法体,但是接口类中不可以。
* 2.抽象类中的成员变量可以是各种类型的,但是接口类中只能是public static final的。
* 3.接口类中不能有静态代码块以及使用static修饰的静态方法,而抽象类中可以有静态代码块和静态方法。
* 4.一个类只能继承几个抽象类,但是一个类可以实现多个接口。
*
* 设计层面:
* 1.抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
* 2.抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。
* @author dyq
*
*/
public class abstractTest {
public static void main(String[] args) {
/**
* 继承了抽象类
*/
Teacher teacher = new Teacher("王老师",45);
System.out.println(teacher.getName());
System.out.println(teacher.getAge());
/**
* 实现了接口
*/
Student student = new Student("白菜");
System.out.println(student.getFoods());
System.out.println(student.eatFoods());
}
}

参考文章:https://www.cnblogs.com/dolphin0520/p/3811437.html#!comments

JAVA基础部分复习(四、抽象类与接口)的更多相关文章

  1. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...

  2. 夯实Java基础(十)——抽象类和接口

    转载自:http://cmsblogs.com/ 该博主的网站上干货非常!非常!非常多(说三遍),强烈推荐大家前去学习. 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法 抽象类与接口是 ...

  3. Java基础系列4:抽象类与接口的前世今生

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 1.抽象类: 当编写 ...

  4. java基础知识回顾之抽象类和接口的区别

    /* 抽象类和接口的异同点: 相同点: 都是不断向上抽取而来的. 不同点: 1,抽象类需要被继承,而且只能单继承. 接口需要被实现,而且可以多实现. 2,抽象类中可以定义抽象方法和非抽象方法,子类继承 ...

  5. Java基础学习笔记(三) - 抽象类和接口

    一.抽象类 没有方法主体的方法称为抽象方法,包含抽象方法的类就是抽象类. Java中使用 abstract 关键字修饰方法和类,抽象方法只有一个方法名,没有方法体. public abstract c ...

  6. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. “全栈2019”Java第六十四章:接口与静态方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现

    java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析 ...

  9. java基础(四)-----抽象类与接口

    抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们 ...

随机推荐

  1. linux LVM详解

    1.创建及删除步骤1)创建:linux partition-->pv-->vg-->lv-->fs-->mount2)删除:umount-->lv-->vg- ...

  2. 【转】js 对象按照键值(不分区大小写)排序,生成签名方法

    客户需求小程序端用js生成签名,我们按照要求一步一步解决,并且将请求方法封装到一个utils.js里: 第一步:对关联数组按照键名做正序排序. 第二步:拼接字符串 第三步:将拼接的字符串加上私钥 第四 ...

  3. dubbo 框架和 tomcat 的比较

    接触 dubbo 有一段时间,特别想拿 dubbo 和 tomcat 比较一番. tomcat 是 web 服务器,提供 http 服务,当 tomcat 收到浏览器发送的 http 请求时,根据 u ...

  4. openssh允许root用户登录

    openssh默认是不允许root用户登录的,未改配置直接以正确的root账号密码登录会提示用户名密码错误之类. 好消息是openssh配置十分清晰,基本所有的服务端配置都在/etc/ssh/sshd ...

  5. Linux第二周作业

    通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 1.进入vi编写C语言程序代码,首先必须输入命令vi main,c,其中main.c是文件名. 紧接着按esc键退出编辑状态,再输入一个 ...

  6. bzoj3879

    题解: 后缀数组 然后把读入的内容去重,按照rank排序 然后用单调栈处理一下 代码: #include<bits/stdc++.h> using namespace std; typed ...

  7. Java使用POI插件将数据以excel形式备份

    将数据以表格形式进行备份 (1)导入poi的jar包 放入lib下:  WebRoot\WEB-INF\lib\poi-3.2-FINAL-20081019.jar 下载链接:https://gith ...

  8. Docker的安装以及使用Docker安装jenkins,gogs,tomcat(一)

    (1)Docker的安装  官网安装链接 :https://yeasy.gitbooks.io/docker_practice/content/ 卸载旧版本 旧版本的 Docker 称为 docker ...

  9. hdu 1057 A + B Again

    A + B Again Problem Description There must be many A + B problems in our HDOJ , now a new one is com ...

  10. c算法:字符串查找-KMP算法

    /* *用KMP算法实现字符串匹配搜索方法 *该程序实现的功能是搜索本目录下的所有文件的内容是否与给定的 *字符串匹配,如果匹配,则输出文件名:包含该字符串的行 *待搜索的目标串搜索指针移动位数 = ...