java里面继承是单继承,也就是说一个父类可以有多个子类,但一个子类却不能有多个父类。
为什么java要单继承呢?那是因为如果多继承会导致类的各种继承关系混乱,不利于程序阅读和维护。
但是这样在编写程序的时候就会有点问题。
比如说现在有猫类,狗类,他们都继承动物类,具有年龄,名字,毛发颜色的属性,我现在又想让他们继承一个宠物类,能实现和主人散步的方法,但很明显这在java里面是不允许的。这个就出现一个很神奇的东西叫做接口!~!,interfere的出现犹如平地一声雷,所有烦恼统统消失掉,我们可以接口来解决上面的问题了。把宠物定义为一个接口,就可以搞定了。
这个下面写了一段演示的代码,没什么实际意义,只是演示接口继承,希望能有用。- /**
- * 作者:于陈
- * 功能:演示接口和继承
- * 时间:二〇一二年五月十一日 20:42:42
- */
- package com.paixu;
- //定义Pet接口
- interface Pet {
- public void Sanbu();
- }
- public class Demo2 {
- public static void main(String[] args) {
- Dog dog = new Dog(2, "旺财", "黑色");//创建dog
- Cat cat = new Cat(3, "小白", "白色");//创建cat
- dog.Sanbu();
- cat.Sanbu();
- }
- }
- // 定义动物类
- class Animal {
- int age; // 年龄
- String name;// 名字
- String color;// 颜色
- // 构造函数
- public Animal(int age, String name, String color) {
- this.age = age;
- this.color = color;
- this.name = name;
- }
- // set和get方法
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getColor() {
- return color;
- }
- public void setColor(String color) {
- this.color = color;
- }
- }
- // 定义狗类,继承Animal类和Pet接口
- class Dog extends Animal implements Pet {
- public Dog(int age, String name, String color) {
- super(age, name, color);
- }
- // 实现接口里面的Sanbu()方法
- public void Sanbu() {
- System.out.println("名叫" + name + "狗狗在和主人散步!");
- }
- }
- // 定义猫类,继承Animal类和Pet接口
- class Cat extends Animal implements Pet {
- public Cat(int age, String name, String color) {
- super(age, name, color);
- }
- // 实现接口里面的Sanbu()方法
- public void Sanbu() {
- System.out.println("名叫" + name + "猫猫在和主人散步!");
- }
- }
复制代码 |