java 子类怎么获得父类中的参数

java 子类怎么获得父类中的参数,第1张

class fathertest{

public fathertest(int i){

Systemoutprintln("hello"+"i");

}

}

public class test extends fathertest {

test(int i){

super(i);

Systemoutprintln("java");

}

public static void main(String[] args) {

test s=new test(0);

}

}

看如下示例,有问题请追问:

public class Outer {

    // 成员部类

    class Inner {

        private String to;

        public String getTo() {

            return to;

        }

    }

    // 静态内部类

    static class StaticInner {

        private String to;

        public String getTo() {

            return to;

        }

    }

}

class Test {

    public static void main(String[] args) {

        // 要访问 成员内部类 的 成员变量to,必须先实例化外部类然后再实例化内部类

        OuterInner inner = new Outer()new Inner();

        Systemoutprintln(innergetTo());

        // 访问 静态内部类 的 成员变量to

        OuterStaticInner staticInner = new OuterStaticInner();

        Systemoutprintln(staticInnergetTo());

    }

}

子类:存在继承关系,关键字extends,例如你说的:class Son extends Father{String name;} 儿子是父亲的一个子类,是两个独立的类,只是子类继承父类的成员变量和成员方法

内部类:与继承无关,是定义在一个类内部的类,可以看成是类的一部分,分为:

例如:class Father{class FatherClothes extends Clothes{} }  这个表示 “ 父亲的衣服FatherClother” 定义在父亲类里面(没有继承关系),并继承衣服类Clother(有继承关系)

此时“父亲的衣服类”可以看成是父亲类的一个一个成员变量,但他们没有继承关系,可以写成:FatherFatherCloter ,而那个“”,表示成员运算符表示FatherClother是Father的一个成员,就像上面Son类中的 Sonname一样,但是我们不能写成FatherSon。

所以楼主说的  “class a1 extends a2{}那么a1是a2的子类吗?”是对的。

“我们写B1B2C3(中间是点号)的时候,就表示c3是b2的子类,b2是b1的子类?”不是子类,是内部类

“那class a1{class a2{}}这样a2也是a1的子类吗?也可以写成a1a2?”不是子类,是内部类

内部类在解决这样的问题的时候,很有用(当然只是一个方面,还有别的用处):

一个接口A中有p()方法,一个类B中也有p()方法,那么我想让这个接口被B实现,然后调用p()方法(B类中的p()方法,我不想覆盖),但是我们调用的哪个?

此时我们可以在B的内部声明一个内部类C,让C去实现A接口,然后调用B中原有的p()方法,可以用B的对象 bp(),调用接口中被实现的p()方法,可以bcp()(c是类C的一个实例)

继承,太熟悉了,熟悉到都不知道说什么了,只能想到这么一句:继承意味着基于一个已经定义好的类创建一个新的类,新的类将以某种方式扩展原有的类,可以认为就是一个类得到另一个类所有属性的过程(构造函数木有被继承,但子类可以通过super调用)。

后面还有匿名内部类,有兴趣可以百度一下了解了解。

比如,有这样一个类,

class T1 extends HashMap<Integer,String> {

}

可以通过下面代码获得HashMap的参数:

Type gs = T1classgetGenericSuperclass();

if(gs instanceof ParameterizedType) {

ParameterizedType pt = (ParameterizedType)gs;

Type[] ts = ptgetActualTypeArguments();

for(int i=0;i<tslength;i++) {

Systemoutprintln(ts[i]getTypeName());

}

}

把最后一行的括号放到第四行下边即可!

class Super {

 public Integer getLenght() {

  return new Integer(4);

 }

}

public class Sub extends Super {

 public Integer getLenght() {

  return new Integer(5);

 }

 public static void main(String[] args) {

  Super sooper = new Super();

  Sub sub = new Sub();

  Systemoutprintln(soopergetLenght()toString() + ","

    + subgetLenght()toString());

 }

}

希望能够帮助到你!

如果我的回答对你有帮助,

别忘了点击我的回答下方选为满意答案按钮。

谢谢!

以上就是关于java 子类怎么获得父类中的参数全部的内容,包括:java 子类怎么获得父类中的参数、如何在java中调用另一个类中子类里的一个变量、java什么叫子类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9764186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存