java什么叫子类?

Python012

java什么叫子类?,第1张

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

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

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

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

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

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

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

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

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

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

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

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

 class C3 {

    int k

}

 class C2 {

    int j

    C3 c3

}

 class C1 {

    int i

    C2[] c2

}

public class asd {

    public static void main(String[] args) {

        C1 c1 = new C1()

        c1.i = 1

        c1.c2 = new C2[10]

        for(int i=0i<10i++) {

         c1.c2[i] = new C2()

            c1.c2[i].c3 = new C3()

            c1.c2[i].c3.k = i

            System.out.println("c2["+i+"].c3.k:"+c1.c2[i].c3.k)

        }

    }

}

// c1.c2 = new C2[10]只是new了一个数组引用,具体每一个c2还得再new一下

作为一个初级的程序员意味着你即将继续学习许多许多。因而,在你获得第一份作业后,接下来该怎么做呢?

1.加深对基本课题的认识

为了获得第一份作业,您或许现已学习了Java开发基础常识。你觉得这就满足了吗?不,有阅历的开发人员和新手的不同之处在于他们的常识深度。常识的范畴似乎是相同的,但高级开发人员能够发现你不知道存在的细微差别。一方面,你能够说是因为他们阅历丰富。正是因为他们现已碰到许多问题,处理了许多问题,所以他们知道这些细微差别。这只是其中之一的原因,除了通过编程获得不断的阅历之外,开发人员还通过阅读文章和书本以及观看视频来学习理论。并且学习的理论需求真正拓展你对这个论题的视界。

2.研讨盛行技能

信息技能在不断变化发展。假设你现已在IT范畴,那么你就需求习气。你一年前学到的东西明日或许会变得无关紧要,这是很正常的。开发人员的首要强项是能够敏捷接纳并学习新技能。这意味着,假设你想保持竞赛优势,就必须不断关注范畴里的新变化。例如,像Kubernetes和Docker这样的技能现在很受欢迎。AWS技能现在也非常盛行,Kotlin言语的运用正在敏捷增长(它正逐渐初步从Java获得商场比例)。

3.深入研讨特定技能

一些有阅历的程序员会成为一项技能的专业人员。你为什么不选择一个有需求的学科(一个技能或结构)深究,假设你这样做,那么你将成为一个肯定的大师,成为一个非常有价值的专家。一般来说,公司都希望能触摸到这样的专家。

4.学习一种新的编程言语

另一个进一步发展的或许性是学习第二种编程言语。在这里,我看到三个选择:Java项目中常常遇到的一种辅助言语。例如,Groovy用于编写各种支撑脚本,或许Python,它常常与Java耦合。

或Javascript和它的一些结构,如角或反应。这些常识将使你成为一名老到的、完整的仓库开发人员。这样的专家非常稀有,并且需求很大,因而,他们能够获得丰厚的薪水(比一般Java开发人员高出一个数量级)。

学习一种源自Java的言语。比如Skala或许Kotlin。这些编程言语现在正获得极大的普及,甚至初步将Java自身挤出商场,弥补了Java的一些缺点和缺少。

5.进步你的软技能

软技能一般意味着交流技巧。换句话说,你与别人交流的才干,表达才干。假设你想成长为一个领导职位,例如,你想成为一名团队领导,那么你需求进步你与其别人互动的技能。测验与不同的人进行更多的交流,越多越好。这样做,你将不再害怕与陌生的人触摸。你将初步为攀谈找到共同点,防止尴尬的中止。

第一份作业不是结尾,而是旅程的初步。现在正是你的常识应该像漫山遍野般成长的时刻。这意味着对你来说,承认你的要点和目标是非常重要的。终究,即使是阅历丰富的船长,也会在没有目的地的状况下在波涛中漂流。因而,选择一个方向,设定一个详细的目标和完成时刻,并初步行进,虽然有些慢但也在安稳中行进。