首页 生活指南 正文内容

:接口定义示例接口与接口实现类之间的矛盾问题

阿立指南 生活指南 2022-10-08 15:10:39 433 0

界面

定义示例

//父类:Animal
public class Animal{
private String name;
private int age;
public Animal(){}
public Animal(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();
}

//接口
public interface Swim{
public abstract eat();
}

//子类
public class Dog extends Animal implements Swim{
public Dog(){};
public Dog(String name,int age){super(name,age)}
@Override
public void eat(){
System.out.println("狗吃骨头")
}
@Override
public void Swim(){
System.out.println("狗在游泳")
}
}

//测试类
public class Test{
public static void main(String[],args){
Dog erHa = new Dog("二哈",1);
erHa.eat();
erha.Swim();
}
}

接口中成员的特征

施工方法

类和接口的关系接口和接口的关系在jdk8默认方法静态方法jdk9私有方法适配器设计模式之后扩展

解决接口与接口实现类的矛盾

例子

//先写一个接口
package com.shuaige.day03;

public interface SpeakEnglish {
  //假如我这里有10个方法
}
//然后再写一个类来继承这个接口,这个接口就相当于适配器
public abstract class 类名 extends SpeakEnglish{
//在这里吧接口的所有方法进行空实现(就是方法重写了,但是不写方法体),
}

//然后再用一个类继承这个适配器
public class 类名 extends 适配器{
//重写接口里你想用的那个方法就可以了
}

表达

定义:是一段可通过的代码块,可以在以后执行一次或多次abstract修饰符可修饰字段 方法和类,其本质是一个匿名函数

注意:表达式只支持函数式接口,即只有一种抽象方法的接口

格式:(参数1,...参数n)-> {方法体};

abstract修饰符可修饰字段 方法和类_abstract只能修饰类_abstract修饰方法

//这段代码的意思是这个lambda表达是接收两个字符串,然后比较他们的长度,根据结果返回相应的值
(String frist,String second){
if(first.length() < second.length()){
return -1;
}else if(fitst.length() > second.length()){
return 1;
}else{
return 0
}
}

内部阶级

使用场景:b类代表A类的一部分,b类单独存在没有意义

分类

成员内部类

当外部类成员变量和内部类成员变量同名时abstract修饰符可修饰字段 方法和类,如何访问内部类

Outer.this.变量名

静态内部类 局部内部类 匿名内部类

欢迎 发表评论:

文章目录
    搜索