java 8-8 接口的练习
/*
老师和学生案例,加入抽烟的额外功能
分析:
老师和学生都具有共同的变量:名字,年龄
共同的方法:吃饭,睡觉
老师有额外的功能:抽烟(设定个接口),部分抽烟 有共同的变量和方法,设一个父类:person类 抽象类
person类:
名字,年龄
吃饭(); 抽象方法,可重写
睡觉(){};成员方法
子类:
teacher类和teacher类可继承父类。
但,部分老师和学生抽烟,则与抽烟接口进行扩展
*/ //设定抽烟接口
//接口的变量是:静态常量最终量;接口没有构造方法,接口的成员方法是:抽象方法
interface Smoking{
// 静态 常量 最终量:public static final int a = 2; 有变量就这样写,这里不需要常量
public abstract void smoking();//抽象方法没有方法体
} //设定父类:抽象类
abstract class perSon4{ //成员变量
private String name;
private int age; //构造方法
public perSon4(){}
public perSon4(String name, int age){
this.name = name;
this.age = age;
}
//getXxx、setXxx。
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
} //抽象方法 吃饭
public abstract void eat();
//成员方法
public void sleep(){
System.out.println("Zzz...");
}
} //子类 老师类 继承父类
class teacher5 extends perSon4{
//无参构造方法
public teacher5(){}
//有参构造方法
public teacher5(String name,int age){
super(name,age);
}
public void eat() {
System.out.println("下班回去睡觉");
}
} //子类 学生类 继承父类
class student5 extends perSon4{
//构造方法
public student5(){}
public student5(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("下课回家睡觉");
}
} //部分老师抽烟,扩展抽烟接口 class SmokTeacher5 extends teacher5 implements Smoking{
//继承了老师类,则把老师类的所有变量方法弄出来:
public SmokTeacher5(){}
public SmokTeacher5(String name,int age){
super(name,age);
}
public void smoking() {
System.out.println("抽烟的老师");
}
} //部分学生抽烟 class SmokStudent5 extends student5 implements Smoking{
//继承了学生类,则把学生类的所有变量方法写出来:
public SmokStudent5(){}
public SmokStudent5(String name,int age){
super(name,age);
}
public void smoking() {
System.out.println("抽烟的学生");
}
} //测试类 class InterfaceTest1 {
public static void main(String[] args){ //测试学生类 直接调用继承了类和扩张了方法的类
SmokStudent5 s = new SmokStudent5("张三",20);
s.smoking();
s.eat();
s.sleep(); System.out.println("---------"); //测试老师类
SmokTeacher5 t = new SmokTeacher5("李四",33);
t.smoking();
t.eat();
t.sleep();
}
}
java 8-8 接口的练习的更多相关文章
- 【转】java通用URL接口地址调用方式GET和POST方式
java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...
- Java继承和接口
接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...
- java中set接口的用法
java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- java抽象类和接口区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- java抽象类与接口的区别及用法
java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...
- 如何让Java和C++接口互相调用:JNI使用指南
如何让Java和C++接口互相调用:JNI使用指南 转自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos ...
- Java中的队列:java.util.Queue接口
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...
随机推荐
- 异步get请求之Block方法
#import "ViewController.h" #import "Header.h" @interface ViewController ()<NS ...
- Objective-c 基础框架(初学者-总结)
一个框架其实就是一个软件包,它包含了多个类.Mac 操作系统提供了几十个框架,主要帮助开发者快速的在Mac 系统上开发应用程序.其中包括一些基础框架,就是为所有程序开发提供基础的框架,其中几个常用的类 ...
- GCD中的dispatch_apply的用法及作用
GCD中的dispatch_apply的用法及作用 (一)dispatch_apply的基本用法 dispatch_apply函数是dispatch_sync函数和Dispatch Group的关联A ...
- android binder 进程间通信机制6-Binder进程间通信机制的JAVA接口
Binder间进程通信的JAVA层接口,主要是通过JNI方法来调用Binder库的C/C++接口 在JAVA层,将Service组件称为JAVA服务,Service组件的代理称为JAVA服务代理. 一 ...
- 插入排序(java版)
public class InsertSortTest{ public static void InsertSort(int[] source) { //默认第一个元素已排序 for (int i = ...
- Cocos2d-x 基础元素
看过本章,然后实践之后,应该会掌握以下的认识: 1.Cocos2d-x引擎的基本运转过程 2.Cocos2d-x引擎的一些初始设置 3.对导演及图层及现实对象的认识 4.如何定义自己的显示对象 *:f ...
- iOS之学习资源收集--很好的IOS技术学习网站
点击图片也能打开相关的网站: https://boxueio.com/skill/swift http://ios.b2mp.cn/ http://gold.xitu.io/welcome/?utm_ ...
- 高仿700Bike的界面图片
下面展示本人高仿项目"700Bike"的已经完成的界面:
- ruby语言是什么东西
1.简介 Ruby是日本的Yukihiro Matsumoto写的,简单易学的面向对象的脚本语言,像perl一样,有丰富的文字处理.系统管理等丰富 功能,但是ruby要简单,容易理解和扩充.跟p ...
- iOS 应用架构浅谈
当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. App确实就 ...