在创建对象的时候是调用子类构造器,那么属性是什么时候赋值的,如果是调用有参构造器为什么里面的赋值没有用呢?
package day05;
public class Person {
String name="父类";
public Person() {
System.out.println("调用父类无参构造器");
}
public Person(String name){
this.name=name;
System.out.println("调用父类有参构造器 name="+this.name);
}
void show(){
System.out.println("调用父类方法");
}
public static void main(String[] args) {
Person p=new Son("aa");
System.out.println(p.name);;
}
}
class Son extends Person{
String name="子类";
public Son() {
System.out.println("调用子类无参构造器");
}
public Son(String name){
this.name=name;
System.out.println("调用子类有参构造器 name="+this.name);
}
void show(){
System.out.println("调用子类方法");
}
}
java向上转型 为什么只能引用父类属性,而方法调用时只能调用父类已有的方法,并且父类方法能被子类覆盖。
答案:3 悬赏:80 手机版
解决时间 2021-04-14 16:06
- 提问者网友:ミ烙印ゝ
- 2021-04-14 03:14
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-04-14 04:45
虽然时间有点久了,还是要分享一下自己的见解。
向上造型:抽取 子类中 [和父类共有的属性和方法] 用来操作。
向上造型作用范围:父类的非私有属性和方法+子类中和父类共有的属性和方法。(非静态方法调用子类的;静态方法,属性调用父类的)
普通继承作用范围:父类的非私有属性和方法+子类中和父类共有的属性和方法+子类扩展方法和属性。
反过来是不是可以说,向上转型就是去掉子类里父类没有的方法和属性。
向下造型,把抽取出拥有父类共性后的子类再强转为同一类型的子类,这时子类和普通子类一样可以使用扩展方法和属性
向上造型:抽取 子类中 [和父类共有的属性和方法] 用来操作。
向上造型作用范围:父类的非私有属性和方法+子类中和父类共有的属性和方法。(非静态方法调用子类的;静态方法,属性调用父类的)
普通继承作用范围:父类的非私有属性和方法+子类中和父类共有的属性和方法+子类扩展方法和属性。
反过来是不是可以说,向上转型就是去掉子类里父类没有的方法和属性。
向下造型,把抽取出拥有父类共性后的子类再强转为同一类型的子类,这时子类和普通子类一样可以使用扩展方法和属性
全部回答
- 1楼网友:鱼忧
- 2021-04-14 07:00
不可以
- 2楼网友:封刀令
- 2021-04-14 05:23
方法之所以能被子类覆盖就是因为有extends这个关键子 你已经继承了Person 所以他的一些属性和方法就是你的了 然而你又写了 void show()
void show() 本身就是父类传递给你的 也就是说你什么都不写 也照样可以点出这个方法 你写了这个之后 就是对方法的重写 (不知道你这一点理解不理解) 然而你其他的问题我没明白你到底是想问什么 你到底是想问子父类中构造方法的始化顺序还是什么 你能跟我说说吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯