java新手笔记21 接口
1.接口
- package com.yfs.javase;
- public interface IDemo1 {//interface 接口
- public /*abstract*/ void method1();//默认抽象方法 public
- }
- class Child1 implements IDemo1 {
- @Override
- public void method1() {
- // 实现接口的方法
- System.out.println("call method1()");
- }
- }
2.接口示例1
- package com.yfs.javase;
- public interface IFly {
- public void fly();
- }
3.实现接口
- package com.yfs.javase;
- public class Bird implements IFly {
- @Override
- public void fly() {
- System.out.println("鸟在飞....");
- }
- }
- class Wuya extends Bird {
- @Override
- public void fly() {
- System.out.println("乌鸦在飞....");
- }
- }
- class Butterfly implements IFly {
- @Override
- public void fly() {
- System.out.println("蝴蝶在飞....");
- }
- }
4.IRun接口
- package com.yfs.javase;
- public interface IRun {
- int a = 10;//默认public static final
- public void run();
- }
- /*public*/ interface ISwim {
- }
- class Horse implements IRun {
- @Override
- public void run() {
- System.out.println("马在跑..." + a);
- }
- }
5.接口多继承
- package com.yfs.javase;
- //接口可以多继承
- public interface ITest extends IFly, IRun, ISwim {
- }
6.Person
- package com.yfs.javase;
- public class Person {
- private String name;
- private int age;
- private char sex;
- public Person() {
- }
- public Person(String name) {
- this.name = name;
- }
- public Person(String name, int age, char sex) {
- this.name = name;
- this.age = age;
- this.sex = sex;
- }
- public void introduce() {
- System.out.println("I am Person....");
- }
- public String toString() {
- return "姓名:" + name + " 年龄 :" + age + " 性别:" + sex;
- }
- public void speak() {
- System.out.println(name + " 工作了吗?");
- }
- public void sleep() {
- System.out.println(name + " 睡觉了吗?");
- }
- public void eat() {
- System.out.println(name + " 吃了吗?");
- }
- 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 char getSex() {
- return sex;
- }
- public void setSex(char sex) {
- this.sex = sex;
- }
- }
7.超人 继承 人,实现 IRun,IFly 接口
- package com.yfs.javase;
- public class SuperMan extends Person implements IRun, IFly {
- @Override
- public void run() {
- System.out.println("超人在跑....");
- }
- @Override
- public void fly() {
- System.out.println("超人在飞...");
- }
- }
8.接口 测试
- package com.yfs.javase;
- public class Test1 {
- public static void main(String[] args) {
- IFly f1 = null;
- // new IFly();//接口不能实例化
- f1 = new Bird();
- f1.fly();
- f1 = new Butterfly();
- f1.fly();
- callMethod(new Wuya());
- IRun r1 = new Horse();
- r1.run();
- callMethod(new SuperMan());
- }
- public static void callMethod(IFly f) {
- f.fly();
- }
- }
9.测试2
- package com.yfs.javase;
- public class Test2 {
- public static void main(String[] args) {
- SuperMan s1 = new SuperMan();
- s1.setName("Tom");
- s1.speak();
- s1.run();
- callMethod(new Horse());
- callMethod(s1);
- }
- public static void callMethod(IRun r) {
- r.run();
- }
- }
java新手笔记21 接口的更多相关文章
- java新手笔记22 接口示例2
1.USB package com.yfs.javase; public interface USB { //定义规范 public void read(); public void write(); ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- Java学习笔记之接口
一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(Str ...
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- java新手笔记31 集合实现类
Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...
- java新手笔记27 监听器类
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- java新手笔记20 抽象类模板(letter)
1.抽象类 package com.yfs.javase; //信模板 public abstract class Templater { public abstract String toName( ...
随机推荐
- window上使用GIT的个人经验(入门级)
0.安装 使用google上的msysgit http://code.google.com/p/msysgit/downloads/list 尽量用最新版的吧 1.KEY 关于 key,.ssh里面的 ...
- Html笔记(五)表格
表格标签: <table> 组成: 标题标签: <caption>给表格提供标题. 表头标签: <th> ,一般对表格的第一行或者第一列进行格式化,就是粗体显示,并 ...
- 一个free的问题
请看下面的代码: #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sy ...
- 学习Windows Azure 视频集合大全
Windows Azure 入门系列课程视频Windows Azure 入门系列课程(1):Windows Azure 概述http://www.aboutyun.com/thread-5777-1- ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- Find longest contiguous sub array
It's still an Amazon interview question. Given an array containing only stars '*' and hashes '#' . F ...
- json里的日期字符串 怎么 转换成 javascript 的 Date 对象?
“/Date(1232035200000)/” 怎么转换成 javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字 ...
- android图片闪烁或帧动画
remote_recording_transition.xml 文件 <?xml version="1.0" encoding="utf-8"?> ...
- SVN eclipse插件错误
部分文章转载自:http://www.bkjia.com/ASPjc/1015687.html 出现如下问题该怎么做: 1.在Windows--Preferences--Team--SVN--接口换成 ...
- 以管理员身份启动ClickOnce部署的应用程序
ClickOnce方式部署应用简单方便,估计很多人都用过,但这种方式存在一定的“缺陷”,即以管理员方式启动应用的问题,虽然出于安全考虑可以理解,但给需要管理员权限才能正常运行的程序带来了一定的麻烦,这 ...