Java(面向对象进阶——接口)

接口的定义和使用

练习

java 复制代码
package day10.接口练习;

public  abstract class animals {
    private String name;
    private int age;
    public animals(){

    }
    public animals(String name,int age){
        this.name=name;
        this.age=age;
    }

    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(String something);
}
java 复制代码
package day10.接口练习;

public class dog extends animals implements swing{
    public dog(String name,int age){
        super(name,age);
    }
    @Override
    public void eat(String something) {
        System.out.print(getAge()+"岁的"+"小狗吃"+something);
    }

    @Override
    public void youyong(String fangfa) {
        System.out.println(fangfa);
    }
}
java 复制代码
package day10.接口练习;

public class frog extends animals implements swing{
    public frog(String name,int age){
        super(name,age);
    }
    @Override
    public void eat(String something) {
        System.out.print(getAge()+"岁的"+"青蛙吃"+something);
    }

    @Override
    public void youyong(String fangfa) {
        System.out.print(fangfa);
    }
}
java 复制代码
package day10.接口练习;

public class tuzi extends animals{
    public tuzi (String name,int age){
        super(name,age);
    }
    public void eat(String something){
        System.out.println();
        System.out.println(getAge()+"岁的"+"兔子吃"+something);
    }
}
java 复制代码
package day10.接口练习;

public interface swing {
    public abstract void youyong(String fangfa);
}
java 复制代码
package day10.接口练习;

public class test {
    public static void main(String[] args) {
        dog d=new dog("小黄",2);
        frog f=new frog("小青",6);
        tuzi t=new tuzi("突牙",3);
        d.eat("骨头");
        d.youyong("狗刨");
        f.eat("虫子");
        f.youyong("蛙泳");
        t.eat("胡萝卜");
    }
}

接口中成员的特点

接口和类之间的关系

练习

java 复制代码
package day10.pingpang;

public class people {
    private String name;
    private int age;
    public people(){

    }
    public people (String name,int age){
        this.age=age;
        this.name=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;
    }
}
java 复制代码
package day10.pingpang;

public abstract  class jiaolian extends  people{
    public jiaolian(String name,int age){
        super(name,age);
    }
    public abstract void jiao(String qiu);
}
java 复制代码
package day10.pingpang;

public abstract  class xueyuan extends  people{
    public xueyuan(String name,int age){
        super(name,age);
    }
    public abstract void xue(String qiu);
}
java 复制代码
package day10.pingpang;

public class lanqiu_jiaolian extends jiaolian{
    public lanqiu_jiaolian(String name, int age) {
        super(name, age);
    }

    @Override
    public void jiao(String qiu) {
        System.out.println(getName()+"年龄为"+getAge()+"教打"+qiu);
    }
}
java 复制代码
package day10.pingpang;

public class pingpang_xueyuan extends people implements English{
    public pingpang_xueyuan(String name,int age){
        super(name,age);
    }
    @Override
    public void speak(String langer) {
        System.out.print(getName()+"年龄为"+getAge()+"会讲"+langer);
    }
    //@Override
    public void xue(String qiu){
        System.out.println("学习打"+qiu);
    }
}
java 复制代码
package day10.pingpang;

public class lanqiu_xueyuan extends xueyuan{
    public lanqiu_xueyuan(String name,int age){
        super(name,age);
    }
    //@Override
    public void xue(String qiu){
        System.out.println(getName()+"年龄为"+getAge()+"学习打"+qiu);
    }
}
java 复制代码
package day10.pingpang;

public class pingpang_jiaolian extends jiaolian implements English{
    public pingpang_jiaolian(String name, int age) {
        super(name, age);
    }

    @Override
    public void jiao(String qiu) {
        System.out.print(getName()+"教打"+qiu);
    }

    @Override
    public void speak(String langer) {
        System.out.println("会讲"+langer);
    }
}
java 复制代码
package day10.pingpang;

public class test {
    public static void main(String[] args) {
        pingpang_jiaolian p1=new pingpang_jiaolian("李教练",38);
        pingpang_xueyuan p2=new pingpang_xueyuan("王小生",18);
        p1.jiao("乒乓球");
        p1.speak("英语");
        p2.speak("英语");
        p2.xue("乒乓球");
        System.out.println("----------------");
        lanqiu_jiaolian p3=new lanqiu_jiaolian("姚明",43);
        lanqiu_xueyuan p4=new lanqiu_xueyuan("姚小明",16);
        p3.jiao("篮球");
        p4.xue("篮球");
    }
}

接口中的方法

默认方法

静态方法

私有方法

适配器设计模式 (设置中间人)

相关推荐
格林威11 小时前
C#图像像素放大:邻域平均、双线性插值实现像素放大的C#实现代码
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
兔兔兔兔111 小时前
记录C++ 8
开发语言·c++
paopaokaka_luck12 小时前
基于springboot3+vue3的文山民族文化资源展示与推广平台(协同过滤算法、Echarts 图形化分析)
java·前端·spring boot·学习·echarts
eralong12 小时前
Java IO 与 NIO
java·后端
NINO12 小时前
深度解析 Android ANR:从标准分析流程到 NativePollOnce 疑难破局
android
阿巴斯甜12 小时前
AppFunctions 完整介绍
android
Jesse_EC12 小时前
我给消息推送加了 Publisher Confirm,然后亲手引入了一个竞态
java
名字还没想好☜12 小时前
Go 1.23 range-over-func 迭代器实战:自定义可迭代类型、提前退出与惰性求值
开发语言·后端·golang·go·迭代器
S3rein12 小时前
JAVA多线程手撕
java·多线程
用户81818706274612 小时前
第7章 死锁排查实录:jstack定位死锁的完整流程
java·后端