目录

1. 抽象类

1.1 抽象类的概念

1.2 抽象类语法

1.3 抽象方法特性

1.4 抽象类的作用

2. 接口

2.1 接口的概念

2.2 接口的语法规则

2.3 接口的使用

2.4 实现多个接口

2.5 接口间的继承

2.6 接口使用实例


1. 抽象类

1.1 抽象类的概念

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

在打印图形例子中(【JavaSE】关于多态那些事儿),我们发现,父类 Shape 中的 draw 方法好像并没有什么实际工作,主要的绘制图形都是由 Shape 的各种子类的 draw 方法来完成的。像这种没有实际工作的方法,我们可以把它设计成一个抽象方法(abstract method),包含抽象方法的类,我们称为抽象类(abstract class)。

1.2 抽象类语法

在 Java 中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。但是抽象类也是类,内部可以包含普通方法和属性,甚至构造方法:

//抽象类,使用 abstract 修饰
abstract class Shape{//抽象方法,使用 abstract 修饰public abstract void draw();abstract public void calcuArea();public double getArea(){return area;}public double area;public Shape(){}
}

如果一个普通类,继承了一个抽象类,而这个抽象类里存在抽象方法,那这个普通类就一定要重写抽象类里面的抽象方法,否则就会报错。又或者,可以把 Dog 类也写成 abstract 类。

public abstract class Animal {public String name;public int age;public Animal(String name, int age) {this.name = name;this.age = age;}public abstract void food();
}class Dog extends Animal{public Dog(String name , int age){super(name,age);}public void food(){System.out.println(name+"吃狗粮~");}
}

1.3 抽象方法特性

抽象类的注意事项:

1. 抽象类得使用 abstract 修饰

2. 抽象类不能被实例化

3. 抽象类中,可以有抽象方法,也可以包含非抽象方法,比如构造方法,供子类创建对象时,初        始化父类的成员变量。抽象方法是一个方法被 abstract 修饰,没有具体的方法体。只要包含          抽象方法,这个类必须是抽象类。

4. 抽象类存在的意义就是为了被继承。而当一个普通类继承了一个抽象类,必须重写抽象类中的        抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰

5. 抽象方法是为了被重写,不能被 private 、final、static 修饰,不能是构造方法。所以抽象方法一定要满足重写的规则

1.4 抽象类的作用

由此,抽象类也可以实现多态的思想:

public abstract class Shape {public abstract void draw();
}class Circle extends Shape{public void draw(){System.out.println("⚪");}
}class Triangle extends Shape{public void draw(){System.out.println("												

【JavaSE】抽象类和接口相关推荐

  1. 《JAVASE系列》抽象类与接口

    <JAVASE系列>抽象类与接口 文章目录 <JAVASE系列>抽象类与接口 前言 1.抽象类 1.1抽象类是什么? 1.2 抽象的语法与细节 1.3抽象类的意义与作用 2.接 ...

  2. JavaSE自学笔记013_Real(抽象类、接口、两种设计模式)

    JavaSE自学笔记013_Real(抽象类.接口) 一.基本概述 (一)抽象类(关键字:abstract) //抽象方法 public abstract class Animal{abstract ...

  3. java final类的写法_重拾JavaSE基础——抽象类、接口、代码块、final和枚举

    今天继续回顾Java基础,有些东西用得不多,大家看看知道语法就好 主要内容 抽象类 抽象方法 抽象方法的写法 抽象方法是否可以私有化 抽象类的特征 抽象类有无构造器,能否实例化对象 抽象类的结构 抽象 ...

  4. JavaSE:抽象类和接口

    目录 1. 抽象类 1.1 抽象类概念 1.2 抽象类语法 1.3 抽象类特性 1.4 抽象类的作用 2. 接口 2.1 接口的概念 2.2 语法规则 2.3 接口使用 2.4 接口特性 2.5 实现 ...

  5. 抽象类和接口到底是什么“垃圾“——教你分类

    前言: 这几天给别人讲JavaSE基础,又把面向对象看了一遍,讲的时候发现一个问题,就是当时讲抽象类和接口的时候说接口也是抽象类,是个特殊的抽象类,当时听的时候别人确实能听懂,因为确实没多少东西,但是 ...

  6. 14 面对对象(多态;抽象类;接口)

    文章目录 多态(动态绑定机制) 多态的概述 多态的成员访问特点 多态的好处和弊端 向上转型和向下转型 多态内存图 猫狗案例多态版 多态中的题目分析题 抽象类 抽象类的概述 抽象类的成员特点 抽象类的案 ...

  7. 【Java SE】抽象类和接口

    作者:✿✿ xxxflower. ✿✿ 博客主页:xxxflower的博客 专栏:[JavaSE]篇 语录:⭐每一个不曾起舞的日子,都是对生命的辜负.⭐ 文章目录 1.抽象类 1.1抽象类的概念 1. ...

  8. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

  9. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  10. 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...

    无论你是新手Java 程序员,还是老手程序员,可能在实际开发中很少自己写抽象类. 但是抽象类在某些时候的功能很强大,可以保证子类中百分百实现父类中的方法 -- 普通类的弊端,消除子类的冗余代码 -- ...

最新文章

  1. tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
  2. 人工智能呼唤社会科学家
  3. 深入理解CSS变形transform(3d)
  4. 15、Cocos2dx 3.0游戏开发找小三之Sprite:每一个精灵都是上辈子折翼的天使
  5. python中multiindex如何索引_python – MultiIndex DataFrames的Pandas HDFStore:如何有效地获取所有索引...
  6. C/S+P2P网络模型(二)--上传下载文件
  7. ajax 局部页面替换innerhtml,ajax jquery 页面局部刷新的不同实现代码
  8. C++ 常用算数生成算法
  9. 传感器和单片机主板之间远距离通讯应该有哪些保障处理措施
  10. nodejs mysql mvc_一种nodejs的MVC框架
  11. redis笔记2 限流、GeoHash和Scan
  12. maven的scm插件介绍及使用示例
  13. java中this什么时候不能省略?this()的用法
  14. linux编译so库
  15. if else终结者——策略模式
  16. 禁锢女性科技界地位?《花花公子》的裸体照片一直是测试科技的试金石
  17. qt清空qtablew_qt项目:员工信息管理系统
  18. “NoSuchBeanDefinitionException: No qualifying bean of type”问题解决
  19. 数据结构4 Tree
  20. 线性代数之向量线性相关线性表示的求法

热门文章

  1. 启动与阿里巴巴年货节·县域农资招商对接活动
  2. 设置卡巴斯基2010升级服务器,防止拉入黑名单
  3. 华为低价策略将拿下C网招标30%最大份额
  4. pyaudio安装失败的解决方法
  5. Java实现word、excel、ppt转pdf文件,pdf转图片(无水印)
  6. android 多个shortCut快捷方式实现以及对58同城快捷方式的实现思路的研究
  7. MySQL不建议使用UUID作为主键的原因
  8. dcloud 5+ 监听安卓前后台切换状态 并后台运行程序
  9. ces展会的一点看法
  10. java入口函数_Java 函数入口