class Job_E { //测试类,包涵主函数
public static void main(String[] args) { //主函数
Cat c = new Cat("加菲",8); //创建子类Cat对象
System.out.println(c.getName()+c.getAge()+"岁"); //用getXxx()方法得到私有成员属性的值
c.eat(); //子类对象使用共性方法
c.sleep(); //子类对象使用共性方法
JumpCat jc = new JumpCat("跳高猫",3); //创建JumpCat对象继承Cat,因为跳高猫也是猫,只是比普通猫多一个跳高功能,用实现接口去做
System.out.println(jc.getName()+jc.getAge()+"岁"); //用getXxx()方法得到私有成员属性的值
jc.eat(); //子类对象使用共性方法
jc.sleep(); //子类对象使用共性方法
jc.jump(); //子类对象使用特性方法
}
}
abstract class Animal { //抽象类,因为类内有抽象方法,所以必须是抽象类
private String name; //私有成员属性,会提供公有的set,get方法赋值和获取值
private int age;
public Animal() {} //空参构造
public Animal(String name,int age) { //全参构造
this.name = name;
this.age = age;
}
public void setName(String name) { //set方法给类内私有属性赋值
this.name =name;
}
public String getName() { //get方法返回私有属性的值到调用方法的位置
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public abstract void eat();
public abstract void sleep();
}
interface Jump { //接口
public void jump();
}
class Cat extends Animal {
public Cat(){}
public Cat(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println("猫吃鱼");
}
public void sleep() {
System.out.println("猫趴着睡");
}
}
class JumpCat extends Cat implements Jump { //实现接口
public JumpCat(){}
public JumpCat(String name,int age) {
super(name,age);
}
public void jump() { //重写接口内抽象方法
System.out.println("这猫会跳高");
}
}
|
|