黑马程序员技术交流社区
标题:
类的小问题
[打印本页]
作者:
王秋霞0812
时间:
2014-1-22 12:07
标题:
类的小问题
一个类有时需要继承父类,
有时需要实现接口,二者在功能上有何不同
而二者分别在什么时候使用
作者:
遗忘
时间:
2014-1-22 15:09
类只支持单继承 也就是说一个类智能有一个父类。
子类可以具备父类的属性和方法 ,也可以有自己独立的属性和方法。
例如:学生具备人的特性:属性:姓名 ,年龄;行为:睡觉。
同时父类可以创建对象。
而我们知道学生除了睡觉和学习之外 还可能有其他的行为
如:运动:打球,跑步;娱乐:听歌,绘画。在Java中我们可以用接口来实现
接口可以被多重实现(implements)
1)接口只有定义,不可以有实现,也就是说接口不可以实例化对象。
因为有抽象方法。子类对接口中的抽象方法全都覆盖后,子类
才可以实例化。否则子类是一个抽象类。
2)接口的字段定义默认为:
常量:public static final。
方法:public abstract。
3)接口可以被多实现,即一个类可以实现多个接口。
类的继承一般继承的是事物的属性,如:姓名,年龄,性别 等,
而接口的继承(或者说实现)一般是继承事物的行为,如:行走,飞翔,游泳
(这比较抽象,在一般项目中大部分是指对某事物的增删改查等操作)
实例:
class Person
{
String name;
int age;
void sleep()
{
System.out.println("睡觉");
}
void show()
{
System.out.println("person_name:"+ name+",person_age:"+ age);
}
}
interface Sport//运动
{
public abstract void playBall();//打球
public abstract void run(); //跑步
}
interface Recreation//娱乐
{
public abstract void music(); //听歌
public abstract void paint(); //绘画
}
class Student extends Person implements Sport,Recreation
{
void study()
{
System.out.println("学习");
}
void show()//覆写父类的show方法
{
System.out.println("stu_name:"+ name+",stu_age:"+ age);
}
public void playBall()
{
System.out.println("stu_"+ name + ":打球");
}
public void run()
{
System.out.println("stu_"+ name + ":跑步");
}
public void music()
{
System.out.println("stu_"+ name + ":听歌");
}
public void paint()
{
System.out.println("stu_"+ name + ":绘画");
}
}
class Demo
{
public static void main(String[] args)
{
Student stu = new Student();
stu.name ="张三";
stu.age = 20;
stu.show();
stu.sleep();
stu.study();
stu.playBall();
stu.run();
stu.music();
stu.paint();
Person p = new Person();
p.name = "李四";
p.age = 18;
p.show();
}
}
复制代码
作者:
廉伟杰
时间:
2014-1-22 15:13
这个其实主要是看你的程序,一个类既可以实现多个接口然后再继承一个父类来完成你的程序,所以这就看你的程序设计了
【修饰符】 class 类名 extends 父类 implements 父接口1,父接口2....
注意先继承在实现就行了的
作者:
贺利英
时间:
2014-1-22 19:18
继承父类的时候,是说父类中的成员是子类所必须有的,是子类功能的一部分,而一个类实现一个接口是说这个类除了有自己基本的功能之外,又拓展了新的功能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2