A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 落叶归根 中级黑马   /  2013-9-10 11:19  /  1062 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 落叶归根 于 2013-9-10 15:05 编辑

   假如:
class  Demo   //类1
{
int  s=1;
string  Name;
}
class  Man  extends Demo  //类2
{
System.out.println("继承Demo");
}
class Game extends Man  //类3
{
System.out.println("我可以使用Demo中的功能吗?");
}
  请问类三可以直接使用类一中的功能吗?

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 Name只是一个变量。

查看全部评分

7 个回复

倒序浏览
class Game extends Name  //类3
{
System.out.println("我可以使用Demo中的功能吗?");
}
你类三继承的Name类?
如果你修改class Game extends Man或者class Game extends Demo,你可以使用父类中(父类的父类)的公有方法(功能)。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
不可以的,除非你改写下面的代码:
class Game extends Name  //类3
{
System.out.println("我可以使用Demo中的功能吗?");
}
因为你没有继承Demo这个类或者它的子类,如果你把class Game extends Name改成class Game extends Demo或者class Game extends Man就可以使用Demo中的功能。否则你继承了Name就不能再继承Demo或者它的子类,就不可以使用Demo中的功能。因为java不支持多继承

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
你的类3继承name是不可行的    name只是Demo类中的一个方法    类3只能继承Demo类或者Man类
继承的那几段视频中已经说了继承需要注意的事项:必须是类与类之间有所属关系才可以继承。
注意,是类与类之间才可以
子类与父类之间是全盘继承的,不存在只继承某一个方法的情况
回复 使用道具 举报
不可以,name是Demo类中的一个属性,类不能继承属性,要继承类。上面代码编译都不会通过,因为你没有创建name类。关于继承方法,比方你在Demo中定义了一个构造方法Demo(){},或者定义了其他的实例方法(public void runman(){}),继承了Demo后,man就会有这些方法,你如果不想改变其功能,可以直接用的,你如果要去扩展其功能,只要重复写出方法,改变其中代码块即可,这就是所谓的覆写
回复 使用道具 举报
1,如果想在类3中使用类1的功能,必须在类3中创建类1的对象,然后才能访问类3中的东西。
2,如果楼主类的多层基层,直接可以在类3中调用类1的内容。
3,同长在一个类中的语句使需要定义在函数中(输出语句也应该定义在函数当中)。类成语只有属性(变量),函数(方法),构造函数,构造代码块,静态代码块等等。一条语句通常不能定义在类中作为成员。
总结:
      类只支持单继承,但是支持多层继承,并且对于单继承的局限性java也有自己的处理措施。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马