java面向对象_抽象类和接口
一、抽象类
1.抽象方法:由abstract修饰、只有定义没有方法体、用一个分号结尾。
2.抽象类:
1)包含抽象方法的类必须是抽象类
2)由abstract修饰
3)不能被实例化
4)抽象类如果不被继承,就没有什么意义;一个类继承抽象类,必须重写起抽象方法(除非该类也声明为抽象类)
abstract class Shape{ //声明抽象类
private double c;
public Shape(double c){
this.c = c;
}
public abstract double area(); //抽象方法
}
3.抽象类的意义
3.1)父类的意义
3.1.1)封装所有子类共有的数据和行为
3.1.2)位所有子类提供一个公共类型
3.2)包含抽象方法
为所有子类提供了统一的入口
二、接口
1)这是一个标准、一个规范;实现了接口就能干某事
2)只能包含常量和抽象方法
3)由interface修饰
4)接口不能被实例化
5)接口是需要被实现/继承的,实现类/子类,必须重写接口中的所有抽象方法。
interface Inter1{
void a();
void b();//默认为public abstract修饰
}
class Aoo implement Inter1{ //实现
public void a(){...}
public void b(){...}
}
6)一个类可以实现多个接口,用逗号隔开;可以又继承又实现,但是要先继承再实现。
7)接口间可以继承
三、抽象类与接口的区别
1、成员区别
(1)抽象类:可以包含——变量、常量;抽象方法、非抽象方法
(2)接口:只能包含常量、抽象方法
2、关系区别
(1)类与类
继承为单继承
(2)类与接口
实现:单实现、多实现
(3)接口与接口
继承为 单继承、多继承
3、设计理念区别
(1)抽象类:被继承体现的是“is a”的关系。抽象类中定义的是该继承体系共性功能。
(2)接口:被实现体现的是“like a”的关系。接口中定义的是该继承体系扩展功能。
java面向对象_抽象类和接口的更多相关文章
- Java面向对象_抽象类、接口
一.抽象类 概 念:很多具有相同特征和行为的对象可以抽象为一个类:很多具有相同特征和行为的类可以抽象为一个抽象类 关键字:abstract 规 则:1.抽象类可以没有抽象方法,有抽象方法的类必 ...
- Java面向对象之抽象类,接口
抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的 ...
- Java面向对象_抽象类应用——模板方法模式
概念:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 去个例子分析一下这个概念: public cla ...
- java基础(四)-----抽象类与接口
抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们 ...
- Java基础之抽象类与接口
Java基础之抽象类与接口 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候 ...
- java 8中抽象类与接口的异同
1.java 8中抽象类与接口的异同 相同点: 1)都是抽象类型: 2)都可以有实现方法(以前接口不行): 3)都可以不需要实现类或者继承者去实现所有方法,(以前不行,现在接口中默认方法不需要实现者实 ...
- Java 中,抽象类与接口之间有什么不同?
Java 中,抽象类和接口有很多不同之处,但是最重要的一个是 Java 中限制一个 类只能继承一个类,但是可以实现多个接口.抽象类可以很好的定义一个家族类 的默认行为,而接口能更好的定义类型,有助于后 ...
- 十、Java基础---------面向对象之抽象类与接口
抽象类(abstract) 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...
- Java:【面向对象:抽象类,接口】
本文内容: 抽象类 接口 抽象类与接口的异同 首发日期:2018-03-24 抽象类: 虽然已经有了父类,但有时候父类也是无法直接描述某些共有属性的,比如哺乳类和人类都会叫,而一般来说哺乳类这个父类并 ...
随机推荐
- ubuntu15.10安装搜狗拼音输入法
sudo vim /etc/apt/sources.list.d/ubuntukylin.list(我的默认显示没有这个文件将自动创建) 添加源deb http://archive.ubuntukyl ...
- HTML5安全:CORS(跨域资源共享)简介。。。ie67不要想了。。。
来源:http://blog.csdn.net/hfahe/article/details/7730944 前言:像CORS对于现代前端这么重要的技术在国内基本上居然很少有人使用和提及,在百度或者Go ...
- java17
1:登录注册案例(理解) 2:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法: ...
- 使用div元素来包含内容
在编写样式表时,经常要用到<div>元素来包含内容~~ 下面试简单的示例~ moreHigh.htm l <!DOCTYPE html> <html lang=" ...
- 【pymongo】mongodb cursor id not valid error
参考来源: http://stackoverflow.com/questions/10298354/mongodb-cursor-id-not-valid-error http://stackover ...
- volatile关键字详解
本文系转载,原文链接:http://www.cnblogs.com/Chase/archive/2010/07/05/1771700.html,如有侵权,请联系我:534624117@qq.com 引 ...
- 异或之(bzoj 3689)
Description 给定n个非负整数A[1], A[2], --, A[n].对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这 ...
- 火狐min-height不兼容解决方法
我们在进行页面架构的时候,一般会分成三个section:header.body.footer.如下面这个页面: 这个时候我们就需要对body部分进行最小高度设置,才能避免footer部分出现在页面中间 ...
- PHP操作数据库
一.PHP连接到MySQL // //比较规范的写法是地址,登录名,密码这样写,比较安全 define("DB_HOST", 'localhost'); define('DB_US ...
- apache自带的web监控器配置
第一:将mod_status模块放开,即去掉httpd.conf中的# 第二:在httpd.conf后面添加下面内容 <Location /server-status> SetHandle ...