java中子类可以创建父类中没有定义的方法或者变量吗?

Python013

java中子类可以创建父类中没有定义的方法或者变量吗?,第1张

java中子类可以创建父类中没有定义的方法或者变量子类是对父类的继承和扩充,扩充的内容就可以包含方法变量

1、集合类型主要有3种:set(集)、list(列表)和map(映射)。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。

2、变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量通常是可变的但在纯函数式语言中,变量可能是不可变的。变量可能被明确为是能表示可变状态、具有存储空间的抽象;但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义"变量"的准确外延。

3、变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。

4、在ArrayList和Vector中,从一个指定的位置查找数据或是在集合的末尾增加、移除一个元素所花费的时间是一样的,这个时间我们用O(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调用)。

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

是的,子类将继承父类的非私有的属性和方法。

在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。

1、如果给子类i提供get和set通过get调用的自然是子类的。

2、如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写。

扩展资料

在继承中用到super调用父类的构造

privateStringname

privateStringsex

publicxinxin1(Stringname,Stringsex)

{

this.name=name

this.sex=sex

}

publicvoidhello(){

System.out.println(“嗨!我是”+name+”我是”+sex+”孩”)

}