
在Java中,接口(Interface)是一种抽象类型,它定义了一组方法(没有方法体)的规范,但没有实现这些方法的具体细节。接口可以看作是一种约定,它规定了类应该如何进行行为定义,而不关心具体的实现细节。
abstract 关键字显式声明。
default 关键字修饰的具体方法)和静态方法(使用 static 关键字修饰的静态方法)。
public static final 类型的。
package com.von.day15;
public abstract 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();
}package com.von.day15;
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("狗在游泳");
}
}package com.von.day15;
public class Frog extends Animal implements Swim{
public Frog() {
}
public Frog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("青蛙吃虫子");
}
@Override
public void swim() {
System.out.println("青蛙游泳");
}
}package com.von.day15;
public class Rabbit extends Animal{
public Rabbit() {
}
public Rabbit(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("兔子再吃胡萝卜");
}
}package com.von.day15;
public interface Swim {
public void swim();
}package com.von.day15;
public class text {
public static void main(String[] args) {
Frog f=new Frog();//青蛙
System.out.println(f.getName()+","+f.getAge());
f.eat();
f.swim();
Rabbit r=new Rabbit();//兔子
System.out.println(r.getName()+","+r.getAge());
r.eat();
Dog d=new Dog();//狗
System.out.println(d.getName()+","+d.getAge());
d.eat();
d.swim();
}
}

因为没有传入参数,所以为null和0.
成员特点(字段和方法)是接口定义的一部分,它们规定了实现该接口的类应该具备的属性和行为。接口通过定义这些成员特点,强制实现类提供对应的功能实现,从而实现了代码的约束和多态性。
public static final 的,也就是常量。它们必须被初始化为一个常量值。public abstract 的抽象方法,不包含方法体。实现接口的类必须实现这些方法。default 关键字修饰)和静态方法(使用 static 关键字修饰),它们可以提供接口的默认实现或者与接口相关的功能性方法。public static final 的。通过接口名访问这些字段。

package com.von.day15a;
public abstract class Coach extends People{
public Coach() {
}
public Coach(String name, int age) {
super(name, age);
}
public abstract void teach();
}package com.von.day15a;
public class LQcoach extends Coach{
public LQcoach() {
}
public LQcoach(String name, int age) {
super(name, age);
}
@Override
public void teach(){
System.out.println("教篮球");
}
}package com.von.day15a;
public class LQsport extends Sports{
public LQsport() {
}
public LQsport(String name, int age) {
super(name, age);
}
@Override
public void learn() {
System.out.println("学篮球");
}
}package com.von.day15a;
public class People {
private String name;
private int age;
public People() {
}
public People(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;
}
}package com.von.day15a;
public class PPcoach extends Coach implements Speak{
public PPcoach() {
}
public PPcoach(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("教乒乓球");
}
@Override
public void sprakEnglish() {
System.out.println("说英语");
}
}package com.von.day15a;
public class PPsport extends Sports implements Speak{
public PPsport() {
}
public PPsport(String name, int age) {
super(name, age);
}
@Override
public void sprakEnglish() {
System.out.println("说英语");
}
@Override
public void learn() {
System.out.println("学乒乓球");
}
}package com.von.day15a;
public interface Speak {
public void sprakEnglish();
}package com.von.day15a;
public abstract class Sports extends People{
public Sports() {
}
public Sports(String name, int age) {
super(name, age);
}
public abstract void learn();
}package com.von.day15a;
public class Text {
public static void main(String[] args) {
PPsport pPsport=new PPsport("乒乓球运动员",18);//乒乓球运动员
System.out.println(pPsport.getName()+","+pPsport.getAge());
pPsport.sprakEnglish();
pPsport.learn();
PPcoach pPcoach=new PPcoach("乒乓球教练",30);//乒乓球教练
System.out.println(pPcoach.getName()+","+pPcoach.getAge());
pPcoach.teach();
pPcoach.sprakEnglish();
LQsport lQsport=new LQsport("篮球运动员",19);//篮球运动员
System.out.println(lQsport.getName()+","+lQsport.getAge());
lQsport.learn();
LQcoach lQcoach=new LQcoach("篮球教练",32);//篮球教练
System.out.println(lQcoach.getName()+","+lQcoach.getAge());
lQcoach.teach();
}
}