public interface Animal{
void eat();
void sleep();
}
public class Cat implements Animal{
public void eat(){
System.out.println("Cat can eat");
}
public void sleep(){
System.out.println("Cat can sleep");
}
}
public class Dog implements Animal{
public void eat(){
System.out.println("Dog can eat");
}
public void sleep(){
System.out.println("dog can sleep");
}
}
public interfaceDemo{
public static void main(String args[]){
Cat a=new Cat();
a.eat();
a.sleep();
Dog p= new Dog();
p.eat();
p.sleep();
}
}
这个主要是java类和对象的问题,根据需要创建类和对象就行了
给你分析你的问题吧。
你的问题在于对接口和实现类之间的关系不太理解。
首先接口中只是定义方法,没有具体的实现。
类实现接口,所谓实现就是实现接口中的方法,也就是给出接口中定义方法的具体实现。
接口:定义eat()方法、 sleep()方法。
即
public interface Animal {
public void eat();
public void sleep();
}
两个实现类实现接口:**注意实现方法上要加@Override注解**
Cat类:
public class Cat implements Animal {
@Override
public void eat(){
System.out.println("猫可以吃东西");
}
@Override
public void sleep(){
System.out.println("猫可以睡觉");
}
}
Dog类同理:只是具体实现内容不一样。
public class Dog implements Animal {
@Override
public void eat(){
System.out.println("狗可以吃东西");
}
@Override
public void sleep(){
System.out.println("狗可以睡觉");
}
}
测试类:创建cat和dog类对象,并调用其中的方法。
public interfaceDemo{
public static void main(String args[]){
Cat cat=new Cat();
cat.eat();
cat.sleep();
Dog dog= new Dog();
dog.eat();
dog.sleep();
}
}
我有个功能一样的程序。
public interface Animal {
public void eat(String s);
public void sleep(String s);
}
public class Cat implements Animal{
@Override
public void eat(String s) {
System.out.println("Cat eat");
}
@Override
public void sleep(String s) {
System.out.println("Cat sleep");
}
}
public class Dog implements Animal{
@Override
public void eat(String s) {
System.out.println("Dog eat");
}
@Override
public void sleep(String s) {
System.out.println("Dog sleep");
}
}
public class InterfaceDemo {
public static void main(String[] args){
Cat cat = new Cat();
cat.eat( "eat" );
cat.sleep( "sleep" );
Dog dog = new Dog();
dog.eat( "eat" );
dog.sleep( "sleep" );
}
}
解决疑惑了吗
Animal.java文件:
public interface Animal {
public void eat();
public void sleep();
}
Cat.java文件:
public class Cat implements Animal{
@Override
public void eat() {
System.out.println("Cat eat!");
}
@Override
public void sleep() {
System.out.println("Cat sleep!");
}
}
Dog.java文件:
public class Dog implements Animal{
@Override
public void eat() {
System.out.println("Dog eat!");
}
@Override
public void sleep() {
System.out.println("Dog sleep!");
}
}
TestAnimal.java文件:
public class TestAnimal {
public static void main(String args[]) {
Cat ct = new Cat();
ct.eat();
ct.sleep();
Dog dog = new Dog();
dog.eat();
dog.sleep();
}
}
?
public interface Animal {
/**
* 吃食物方法
* @param food 食物名称
*/
public void eat(String food);
/**
* 睡眠方法
* @param hours 睡眠时长
*/
public void sleep(int hours);
}
public class Dog implements Animal {
@Override
public void eat(String food) {
// 输出:类名+方法名+食物名称
System.out.println("Dog eat " + food);
}
@Override
public void sleep(int hours) {
// 输出:类名+方法名+睡觉时长
System.out.println("Dog sleep " + hours + " hours at night");
}
}
public class Cat implements Animal {
@Override
public void eat(String food) {
// 输出:类名+方法名+食物名称
System.out.println("Cat eat " + food);
}
@Override
public void sleep(int hours) {
// 输出:类名+方法名+睡觉时长
System.out.println("Cat sleep " + hours + " hours during the day");
}
}
public class IntrefaceDemo {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat("bone");
dog.sleep(6);
System.out.println();
Cat cat = new Cat();
cat.eat("fish");
cat.sleep(6);
}
}
运行结果:
Dog eat bone
Dog sleep 6 hours at night
Cat eat fish
Cat sleep 6 hours during the day