Java的继承,抽象,多态,接口的简单应用.
我们利用,猫和狗都是动物类,然后猫会抓鱼,狗会看门的这些方法来简单应用一下继承,抽象,多态,接口。
简单思路就是
1.定义动物类 2.定义猫,狗类,让他们成为动物的子类
3.编写测试类。
- 继承:使子类具有父类(基类,超类)的属性和方法
//animal.class
package Stu;
public class animal {
public String name;
public 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;
}
}
//cat.class
package Stu;
public class cat extends animal {
public cat() {
}
public cat(String name, int age) {
super(name, age);
}
public void catchfish(){
System.out.println("猫抓老鼠");
}
}
//dog.class
package Stu;
public class dog extends animal {
public dog() {
}
public dog(String name, int age) {
super(name, age);
}
public void watch(){
System.out.println("狗看大门");
}
}
//anidemo
package Stu;
//测试类
public class anidemo {
public static void main(String[] args) {
cat c1=new cat();//创建猫类对象测试
c1.setName("曼基康");//无参的测试
c1.setAge(2);
System.out.println(c1.getName()+","+c1.getAge());
c1.catchfish();//调用方法
dog d1=new dog();//创建狗类对象测试
d1.setName("阿拉斯加");//无参的测试
d1.setAge(3);
System.out.println(d1.getName()+","+d1.getAge());
d1.watch();//调用方法
}
}
结果演示
- 多态:同一对象在不同时刻的不同形态
//animal.class 前面和继承的一样,多加了一个eat方法
public void eat(){
System.out.println("动物吃东西");
}
//cat.class 前面和继承的一样,多加了一个eat方法,重写的
@Override
public void eat() {
System.out.println("猫吃鱼");
}
//dog.class 前面和继承的一样,多加了一个eat方法,重写的
@Override
public void eat() {
System.out.println("狗吃肉");
}
//anidemo
package Stu;
//测试类
public class anidemo {
public static void main(String[] args) {
animal c1=new cat();//创建猫对象,注意这里是父亲的类和继承不一样了。
c1.setName("曼基康");
c1.setAge(2);
System.out.println(c1.getName()+","+c1.getAge());
c1.eat();
animal d1=new dog();//创建狗对象,注意这里是父亲的类和继承不一样了。
d1.setName("金毛");
d1.setAge(2);
System.out.println(d1.getName()+","+d1.getAge());
d1.eat();
}
}
结果演示
下片是猫和狗的抽象版和接口版。