java面向对象第四章上机_java面向对象第四章
一、接口的基础知识
1、为什么需要接口
为解决实际应用中,单一继承无法解决的问题
2、什么是接口
a) 基本概念?
接口是一种特殊的抽象类
接口是一种规范和标准,可以约束类的行为,是一些方法特征集合,但方法没有方法体
b) 基本语法
访问修饰符 interface 接口名{
//定义 方法(没有方法体),方法的访问修饰符默认为public
//定义 属性(默认是公共的静态的常量)
数据类型常量名=值;
}
访问修饰符只能为public和默认的
c) 注意事项?
1.接口命名,接口字必须和文件名相同
2.接口中的方法没有方法体
3.接口中的属性名必须大写,且要赋值
4.接口不能实例化,没有构造方法
5.接口支持多重继承,一个接口可以继承多个接口,但不能继承类
6.接口中的方法,必须被所有实现接口的类具体实现
public abstract classHandest {private String brand; //品牌
private String type; //型号
publicString getBrand() {returnbrand;
}public Handest(String brand,String type) { //有参构造方法
this.brand =brand;this.type=type;
}publicString getType() {returntype;
}public abstract voidprint();public abstract voidfunction();
}
父类
父类
public interfaceNetwork {void surf(); //上网
}
//接口2
public interfacePlayWiring {void play(); //播放功能
}
//接口3
public interfaceTakePictures {void takePictures(); //拍照
}
//接口4
public interfaceVideoCall {void visualTelephone(); //视频电话
}
public classAptitudeHandset extends Handest implements PlayWiring,Network,TakePictures,VideoCall {publicAptitudeHandset(String brand, String type) {
super(brand, type);
}
@Overridepublic voidvisualTelephone() {
System.out.println("开始视频通话......");
}
@Overridepublic voidtakePictures() {
System.out.println("咔嚓......拍照成功");
}
@Overridepublic voidsurf() {
System.out.println("已启动移动网络......");
}
@Overridepublic voidplay() {
System.out.println("开始播放视频《小时代》......");
}
@Overridepublic voidprint() {
System.out.println("这是一款型号为"+super.getType()+"的"+super.getBrand()+"手机:");
}
@Overridepublic voidfunction() {
System.out.println("发送带图片与文字的信息......");
}
}
子类
子类
public static voidmain(String [] args){
AptitudeHandset a=new AptitudeHandset("I9100","HTC");
a.print();
a.surf();
a.play();
a.takePictures();
a.function();
a.visualTelephone();
}
测试类
测试类
3、一个类如何实现接口
class 类名 implements 接口名{
//必须对接口中的方法,具体实现
}
4、一个类如何继承另外一个类,且同时实现一个接口【变相的让1个类实现多重继承】
class 子类名 extends 父类名 implements 接口1,…接口n{
}
5、接口的好处?
接口体现了约定和实现相分离的原则
弥补了Java类单一继承的不足,有利于代码的扩展和维护
6、抽象类和接口的异同点?【常见笔试题】
相同点
1.二者都不可以实例化
2.二者都包含抽象方法,必须被非抽象的子类重写或实现
3.二者都可以用来实现多态
不同点:
1、 抽象类只能单一继承,而接口可以支持多重继承
2、 抽象类中除抽象方法外,还可以有非抽象的方法;接口中的方法只能是抽象方法
3、 抽象类可以有构造方法,接口没有
4、 抽象类中的变量可以不赋值,接口中的变量必须赋值
5、 抽象类中可以定义静态方法,接口不可以
public abstract classPet {privateString name;private inthealth;private intlove;public Pet(String name,int health,intlove){this.name=name;this.health=health;this.love =love;
}publicString getName() {returnname;
}public intgetHealth() {returnhealth;
}public intgetLove() {returnlove;
}public abstract voidprint();
}
父类
父类
//接口1
public interfaceEatable {void eat(); //吃饭
}
//接口2
public interfaceFlyingCatchable {void catchingFly(); //接飞盘
}
public classDog1 extends Pet implements Eatable,FlyingCatchable{public Dog1(String name, int health, intlove) {
super(name, health, love);//TODO Auto-generated constructor stub
}
@Overridepublic voidprint() {//TODO Auto-generated method stub
System.out.println("我叫"+super.getName()+",健康值是:"+super.getHealth()+",与主人的亲密度为:"+super.getLove()+"。");
}
@Overridepublic voidcatchingFly() {//TODO Auto-generated method stub
System.out.println("我正在和主人玩飞盘!");
}
@Overridepublic voideat() {//TODO Auto-generated method stub
System.out.println("我正在吃饭!");
}
}
子类
子类
public classPetText {public static voidmain(String [] args){
Dog1 d=new Dog1("好好",90 ,95);
d.print();
d.eat();
d.catchingFly();
}
二、 面向接口编程
1、接口表示一种能力
2、接口表示一种约定
3、面向接口编程的好处?
a) 实现接口和实现的分离
b) 可以降低代码间的耦合性
c) 提高程序的可扩展性和可维护性
java面向对象第四章上机_java面向对象第四章相关推荐
- java面向对象程序设计董小园_java面向对象程序设计(董小园版).doc
目 录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc238553494" 第1章了解Java PAGEREF _Toc238 ...
- java怎样用类模板创建对象_java入门(十四) | 面向对象(OOP)之类和对象
上一期是变量,在java中变量总是无处不在,而变量其意就是可以改变的数,在一般情况下我们可以以变量类型,变量名,变量值来描述它 这一期是给面向对象(OOP)开了一个头,对他的概念,三大特征有了一个基础 ...
- Java怎么用继承回复信息_JAVA面向对象-继承
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Java继承: 1.继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承可以理解为一个对象从另一个对象获取属性的过程. 2.如果类 ...
- java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式
[本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...
- java里面比较重要的东西_Java面向对象程序设计中很重要的一些东西
面向对象具有多方面的吸引力.对于管理人员,它实现了更快和更廉价的开发与维护过程.对于分析与设计人员,能生成清晰.易于维护的设计方案.对于程序开发人员,对象的理解又是如此浅显.此外,面向对象的工具以及类 ...
- java面向对象三大特性难吗_JAVA面向对象的三大特性
JAVA面向对象的三大特性 每一对象是其状态和行为的封装.类是按一定体系和层次安排的,使得子类可以从超类继承行为.在这个类层次体系中有一个根类,它是具有一般行为的类.Java程序是用类来组织的.下面是 ...
- java中object类怎么赋值_Java面向对象之Object类
一.继承体系的老祖宗是Object类.(Object类是所有类的父类) 当我们不希望在程序中某些类被继承,某些方法被重写,某些数据被修订.就是final关键字闪亮登场的时候了. 一个类没有使用exte ...
- java对象赋值给另一个对象_java面向对象编程
对象,从字面意思来看就是我们面对的物象.由此便可以知道,万事万物皆为对象.比如:一台电脑,一辆汽车,一部手机等等都是对象. 比如我们想要买一部手机,我们想要内存大一点的,最新款的,CPU 运算快一点的 ...
- java页面间面向对象的方法面试题_JAVA面向对象面试题带答案(墙裂推荐)
1) 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要有子类重写,应该使用(c)关键字来申明父类的这些方法. a) Finalc b) Static c) Abstract d) Void ...
最新文章
- 修改与删除@property封装的数据属性
- html回车按键确认按钮,button默认enter事件(回车事件)。
- 最适合编程的10大字体推荐
- 光纤收发器在高清网络视频监控工程项目中的应用
- [bzoj4881][Lydsy2017年5月月赛]线段游戏
- SSH-struts2的异常处理
- python入门经典100例-【python】编程语言入门经典100例--14
- 一次失败的做题经历(HDU2112)
- java 菜单快捷键_Java为菜单栏添加快捷键
- 03.09 随手记(Mock数据生成器,Easy Mock基本使用)
- 米聊PC版体验评测: 简约过头的即时聊天工具
- 莫烦python学习笔记
- 网络视频会议管理系统设计原则
- c语言编程模拟银行取钱代码,C语言 用初等函数模拟银行取款
- 金星DEM数据介绍与下载教程
- Crawlab(crawlab github)
- Button 按钮的点击时候出现蓝色边框
- 我所知道坦克大战(单机版)之Client窗口的创建、关闭、禁止调整大小
- 弘辽科技:淘宝开店会抽取多少利润?要多少费用?
- 物联网中,北向接口和南向接口是什么?