Test1
package com.nchien.demo1;
public interface Animal {
public static final String TYPE = "动物";
void eat();
void sport();
void sleep();
}
package com.nchien.demo1;
public class Cat implements Animal{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public Cat() {
}
public Cat(String name) {
this.name = name;
}
@Override
public void eat() {
System.out.println(this.getName() + "喜欢趴在睡觉");
}
@Override
public void sport() {
System.out.println("走猫步");
}
@Override
public void sleep() {
System.out.println("猫喜欢吃鱼");
}
}
package com.nchien.demo1;
public class Dog implements Animal{
@Override
public void eat() {
System.out.println("吃屎");
}
@Override
public void sport() {
System.out.println("会跑");
}
@Override
public void sleep() {
System.out.println("不爱睡觉");
}
}
package com.nchien.demo1;
public class AnimalTest {
public static void main(String[] args) {
Cat cat = new Cat();
//静态成员的访问方式 使用类名.
System.out.println(Cat.TYPE);
cat.setName("猫猫");
cat.eat();
cat.sport();
cat.sleep();
Dog dog = new Dog();
dog.eat();
dog.sport();
dog.sleep();
}
}
Test2
package com.nchien.demo2;
public class Apple implements Fruit{
@Override
public void money() {
//this. 接口中的方法 调用
this.showMe();
System.out.println("苹果4.4一斤");
}
@Override
public void number() {
System.out.println("15个苹果");
}
@Override
public void zuoYong() {
System.out.println("苹果没啥作用");
}
}
package com.nchien.demo2;
public interface Fruit {
String TYPE = "水果";
void money();
void number();
void zuoYong();
/**
* 默认方法可以有方法体
* 针对与接口的升级,通常可是使用静态方法来使用
*/
public default void showMe(){
System.out.println("我是一个快乐的" + TYPE);
}
}
package com.nchien.demo2;
public class FruitTest {
public static void main(String[] args) {
Apple apple = new Apple();
apple.money();
apple.number();
apple.zuoYong();
}
}
Test3
package com.nchien.demo3;
public interface Teacher {
void teach();
}
package com.nchien.demo3;
public interface Programmer {
void editCode();
}
package com.nchien.demo3;
import java.util.SplittableRandom;
public class Nchien implements Teacher,Programmer{
private String name;
public Nchien(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void editCode() {
System.out.println(this.getName() + "会讲课");
}
@Override
public void teach() {
System.out.println(this.getName() + "会代码");
}
}
package com.nchien.demo3;
public class NchienTest {
public static void main(String[] args) {
Nchien nchien = new Nchien("nchien");
nchien.editCode();
nchien.teach();
}
}
Test4
package com.nchien.demo4;
public interface Teacher {
void teach();
}
package com.nchien.demo4;
public interface Programmer {
void editCode();
}
package com.nchien.demo4;
public interface ProgrammerTeacher extends Programmer,Teacher{
}
package com.nchien.demo4;
public class ProgrammerTeacherImpl implements ProgrammerTeacher{
@Override
public void editCode() {
System.out.println("会编码");
}
@Override
public void teach() {
System.out.println("会讲课");
}
}
package com.nchien.demo4;
public class NchienTest {
public static void main(String[] args) {
ProgrammerTeacherImpl programmerTeacherImpl = new ProgrammerTeacherImpl();
programmerTeacherImpl.editCode();
programmerTeacherImpl.teach();
}
}