您的位置:首页 > 编程语言 > Java开发

Java 语言基础之So easy继承

2015-10-23 10:17 513 查看
与C++不同的是java的继承只能是单继承 ,不能进行多继承。好苦逼~

上个例子:

子类Cat:

package com;

public class Cat extends Animal{
@Override // 注解:用编译器去检测父类中是否包含当前具体方法(howl())的声明
public void howl()
{
System.out.println(this.name+".... miaomiao");
}

}


子类Dog:
package com;

public class Dog extends Animal{
@Override
public void howl()
{
System.out.println(this.name+".... wangwang");
}
}


父类Animal:
package com;

public abstract class Animal {
public String name;
public void walk()
{
System.out.println(this.name+"...walk");
}
public void sleep()
{
System.out.println(this.name+"...sleep");
}

public abstract void howl();
}


main:
package com;

public class main {

/**
* @param args
*/
public static void main(String[] args) {

// 子类对象赋值给父类变量
Animal animal = new Cat();
animal.name="Cat";
animal.walk();
// howl() 方法在父类中是抽象方法(abstract),没有实际定义,只是声明而已。
// 在Cat类中实际定义howl()方法的实现。
// 在父类变量在实现调用时,指向的是子类对象,所以howl()方法是子类的方法。
// 最后输出的是Cat.... miaomiao 而不是Cat.... xxxxx
animal.howl();

getMsg(animal);

Animal animal1 = new Dog();
animal1.name="Dog";
animal1.walk();
animal1.howl();
getMsg(animal1);

}

public static void getMsg(Animal animal)
{
animal.howl();
}

}

/**
* 小结:
* 通常定义父类和子类,并使用父类声明,子类赋值的方式进行代码复用。
* 优点:除了代码复用之外,还可以将具体的功能添加到父类声明的变量中,方便代码实现。
* 例如:父类Animal 声明一个变量animal之后,使用Cat子类或者Dog子类赋值给父类animal,这样在
* 写入getmsg()函数时,只要将对象类型声明为父类Animal 即可传入不同子类Cat Dag,来实现不同的具功能。
*
*/


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: