类的继承有点不明白,请指教

ququ9696 2013-12-13 06:05:51
先看下代码
class person
{
private String name;
private int age;
public person(){};
public person(String name,int age)
{
this.name = name;
this.age = age;
}
}
class student extends person
{
public student(){};
public student(String name,int age)
{
super(name,age);//问题1:按语法这个地方是不是可以不用写
}
}
class superDemo1
{
public static void main(String[] args)
{
new student("lucy",11);//问题2:这个地方给name和age赋了值,请问person.name="lucy",person.age=11,那么student.name=="lucy",student.age=11吗?如果等于那么为什么访问不了,是不是就是说的父类的私有属性子类可以继承下来但不可以访问呢,简单说就是这个代码里student类的name和age已经赋值了,只是不让访问吗。。。。 }
}
...全文
239 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengandxue 2013-12-15
  • 打赏
  • 举报
回复
问题2补充,还有你在你的构造器里是这样写的,super(name,age);就等于调用了父类的构造器,你并没有给你自己的子类的对象复制,所以,student.name=="lucy",student.age=11是错误的,它们并没有被赋值,name=null,age=0
fengandxue 2013-12-15
  • 打赏
  • 举报
回复
问题2,一般访问别的类的属性,要用方法,不要去直接调用,例如你可以这样写,String name = person.getName();这里返回的就是Person类的属性值。
fengandxue 2013-12-15
  • 打赏
  • 举报
回复
问题1:你自己子类的构造器,里面可以随便写,不一定非要写个super调用父类构造器,你可以打印一句话,你可以this.name = name;this.age=age;给自己的属性复制。
lichuangdyhm 2013-12-14
  • 打赏
  • 举报
回复
生成子类对象时,默认先调用父类不带参数的构造方法,接下来再去调用子类的构造方法,所以第一个问题处那个super应该写,用以显式的调用父类的特定所需的构造方法。第二个问题,父类的私有属性子类是无法继承的,但有一点我必须说明,new student("lucy",11)似乎是实例化student对象,整么扯到person上了?而且对象的引用也没有,也没有写它们的get方法。。。。
怦然欣动 2013-12-14
  • 打赏
  • 举报
回复
首先,子类的构造方法执行时会向上传递先执行父类的构造方法,如果不显式调用super()或者super(args...),则只会自动调用无参数的super.第二个问题,私有属性和方法都不可以继承,对于属性一般私有化再用公有方法得到。
xtdstyle 2013-12-14
  • 打赏
  • 举报
回复
问题1:子类构造函数默认调用父类的无参构造,也就是super();所以必须写。 问题2:不能够说是Person还是Student的,好歹还是给那个对象一个名吧,私有属性只有本类可以访问,所以肯定不能直接访问啦,你是调用父类的构造赋值的,又不是直接访问,当然可以咯。
神三 2013-12-13
  • 打赏
  • 举报
回复
问题一:不写,就会直接调用自身的,就像楼上说的。 问题二:我认为应该不等于,因为他是用了super(name,age);这个直接赋值给了父类,本身没有,而且由于父类的属性是私有的,所以子类student就不能继承,并且不能访问,要访问的话,可以在父类里写上public的get()方法。
jdgdf566 2013-12-13
  • 打赏
  • 举报
回复
问题1:必须写。已经覆盖了。 问题2:
CJJ3223_11 2013-12-13
  • 打赏
  • 举报
回复
先调父类的吧
haozhongjun 2013-12-13
  • 打赏
  • 举报
回复
问题1: 系统默认只会调用super(); 问题2: 私有变量出了那个类都不可以访问;

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧