package itheima_09_jiekou;
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 itheima_09_jiekou;
public interface Jumpping {
public abstract void jump();
}
package itheima_09_jiekou;
//类和接口之间要用implements,实现的意思
public class Cat extends Animal implements Jumpping{
public Cat() {
}
public Cat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public void jump() {
System.out.println("猫会跳高");
}
}
package itheima_09_jiekou;
public class Dog extends Animal implements Jumpping{
public Dog() {
}
public Dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("狗吃肉");
}
@Override
public void jump() {
System.out.println("狗也会跳高");
}
}
package itheima_09_jiekou;
public class AnimalDemo {
public static void main(String[] args) {
//创建对象,调用方法
Jumpping a = new Cat();
a.jump();
System.out.println("---------------");
Animal b = new Cat();
b.setName("小灰");
b.setAge(2);
System.out.println(b.getName() + "," +b.getAge());
b.eat();
// ((Cat)b).jump();
System.out.println("---------------");
b = new Cat("大橘",3);
System.out.println(b.getName() + "," +b.getAge());
b.eat();
//真正使用的时候用以下这种写法
//猫类继承了动物类,又实例化接口
Cat c = new Cat();
c.setName("小黑猫");
c.setAge(3);
System.out.println(c.getName() + "," +c.getAge());
c.eat();
c.jump();
Dog d = new Dog();
d.setName("我是大黄狗");
d.setAge(3);
System.out.println(d.getName() + "," +d.getAge());
d.eat();
d.jump();
}
}
package itheima_09_jiekou;
public class InterImpl extends Object implements Inter1,Inter2,Inter3{
}
package itheima_09_jiekou;
public interface Inter1 extends Inter2,Inter3{
}
有些实例有某种行为,有些实例没有这种行为,就用接口来定义
package itheima_09_jiekou;
public interface InterEnglish {
public void speak();
}
package itheima_09_jiekou;
public abstract class Person {
private String name;
private int age;
public Person() {
}
public Person(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 void eat(){
System.out.println("人要吃饭");
}
}
package itheima_09_jiekou;
public abstract class Catch extends Person{
public Catch() {
}
public Catch(String name, int age) {
super(name, age);
}
public void teach(){
System.out.println("教练会教学");
}
}
package itheima_09_jiekou;
public abstract class Athlete extends Person {
public Athlete() {
}
public Athlete(String name, int age) {
super(name, age);
}
public void study(){
System.out.println("运动员会学习");
}
}
package itheima_09_jiekou;
public class BaskCatch extends Catch{
public BaskCatch() {
}
public BaskCatch(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("我是篮球教练,我要吃饭");
}
@Override
public void teach() {
System.out.println("我是篮球教练,我会交学员打篮球");
}
}
package itheima_09_jiekou;
public class TableCatch extends Catch implements InterEnglish{
public TableCatch() {
}
public TableCatch(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("乒乓球教练也要吃饭");
}
@Override
public void teach() {
System.out.println("我会交学员打乒乓球");
}
@Override
public void speak() {
System.out.println("我要和外国人交流,我要说英语");
}
}
package itheima_09_jiekou;
public class BaskAthlete extends Athlete{
public BaskAthlete() {
}
public BaskAthlete(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("我是篮球运动员,我吃篮球餐");
}
@Override
public void study() {
System.out.println("我是篮球运动员,我要学习打篮球");
}
}
package itheima_09_jiekou;
public class TableAthlete extends Athlete implements InterEnglish{
public TableAthlete() {
}
public TableAthlete(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("我是乒乓球运动员,我吃乒乓球餐");
}
@Override
public void study() {
System.out.println("我是乒乓球运动员,我要学习打乒乓球");
}
@Override
public void speak() {
System.out.println("我是乒乓球运动员,我会说英语");
}
}
测试类
package itheima_09_jiekou;
public class PersonDemo {
public static void main(String[] args) {
//创建对象
TableAthlete p1 = new TableAthlete();
p1.setName("p1");
p1.setAge(25);
System.out.println(p1.getName() + "," +p1.getAge());
p1.eat();
p1.study();
p1.speak();
BaskAthlete b1 = new BaskAthlete("b1",24);
System.out.println(b1.getName() + "," + b1.getAge());
b1.eat();
b1.study();
}
}



