本篇文章给大家谈谈在java中关于继承的说法,以及在java中关于继承的说法错误的是对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java类继承问题2、java中的继承问题:若b类继承于a类,那c类能否直接继承于b类呢?(若这是正确的那此时c的基类是3、关于java中private的继承问题,先上代码4、关于java和c++中类的继承与覆盖问题5、有关java语言继承特性说法错误的是6、java中多态和继承的区别
java类继承问题
private的确不能继承,你是通过在子类中重写Display()方法,明确的指出super.Display(),调用父类的Display()方法,所以即使Number是private的也能够访问。
java中的继承问题:若b类继承于a类,那c类能否直接继承于b类呢?(若这是正确的那此时c的基类是
首先 ,c可以继承b类。
其次,你的这两种说法都是不准确的。
b extends a ,只要b不是final修饰的类,那c 就可以extends b。 这点是正确的,前提是b不是final 的。 但是此时,b是c的基类, a也可以是c的基类,Object类也是c的基类。也就是说,继承关系是可以纵向传递的。
另一个概念,java中每个类只能继承一个类。c extends b,那它的父类就是b,它不能再继承a。
关于java中private的继承问题,先上代码
问题是:
java中,子类能不能继承父类的构造方法??
我们老师讲说不能继承,但又说父类一般要有个无参的构造方法,如果没有用super()继承,到底是什么呀!!!崩溃….崩溃…..
回答是:
你老师是对的,不过一下子说不清楚。给你个例子。
class A{
public A(){} // 1:无参数构造方法。
public A(String s){} // 2.
}
class B extends A{
public B(String s){
super(s); // 3.
}
}
说明:如果没有1处的无参数构造方法,那么3处一定要主动调用父类带参数的构造方法。
如果有1处的构造方法,那么3处代码可以不要,因为Java会自动默认调用父类的无参数构造方法。
记住一点:在构造子类时,一定会调用到父类的构造方法。
所以父类要么有一个默认的无参数构造,这样Java会自动调用这个无参数的构造。如果父类没有无参数的构造,那么就要你自己在子类的构造中,通过super()的方式调用父类的构造。
另外 :
父类的构造方法不用继承,我们可以用super来调用,如父类的构造方法为:public A(){};那么子类调用为super();如果为public A(int a);那么子类调用为super(1);
父类一般要有一个无参数的构造方法是因为我们的子类如果没有显性的调用父类的构造函数的话就会默认加入super();即调用父类的无参数构造函数,当父类没有无参数构造函数就会报错哦,这就是要加入一个无参数构造函数的原因。
还有
|||||||||||||||||||||子类继承父类的所有东西,但有的东西在子类中不能访问. |||||||||||||||
private只是不能访问而已,但是你父类的public方法可能调用了private方法,所以子类当然也相当于间接调用了父类的private方法,不知道这个算不算继承。不过如果父类有一个从来没有用到的private方法,此时子类仍然有继承,虽然子类根本无法间接的调用它,但是父类其实也无法间接的调用它。
我们可以通过super调用父类的构造器,其实和方法是一样的,不过我觉得构造器只不过 不会默认的呈现可访问形式,这个和方法不一样。如果没有继承,怎么可以访问到呢?
关于java和c++中类的继承与覆盖问题
JAVA覆盖 1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; 2、覆盖的方法的返回值必须和被覆盖的方法的返回一致; 3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类; 4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。 重载 1.必须在一个类中 2.方法名相同而参数的类型不同 3.方法名相同而参数的个数不同 4.方法名相同而参数的位置不同 5.光返回值不同的方法不叫重载 C++的隐藏规则这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。 JAVA没有隐藏规则这一说法~~ 我主要想知道java中有没有隐藏规则这一说法 C++中隐藏的第一个规则是如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏 咱JAVA中方法名相同但参数不同这种情况就是方法的重载,但是父类的方法还是存在的,你给定父类方法的参数还是可以调用它,但是C++中这种情况父类的方法就被隐藏了。 java中的继承和c++中的继承有什么不同的地方吗? JAVA容许类地继承,而且是单继承,也就是一个子类只可以有一个直接父类(基类),但是这个子类的父类有可能是另一个类的子类,例如A extends B,B extends C,A也就拥有了C的可见成员与方法,这是类继承的传递性。但是C++中容许一个子类可以有多个基类,是容许多继承的,例如class A:public B,public C,这虽然能更好的描述显示世界,但是也让问题更复杂。JAVA通过类继承的传递性实现了C++的多继承的功能。 java中继承可以发生在子类和父类中这是和c++的不同点吗。 所谓的继承就是一个类继承类另一个类,拥有了父类(c++中的基类)的可见成员与可见方法,继承只能发生在子类和父类中。 java中的重载可以不在一个类中这么说对吗? 这种说法是错误的,JAVA中的重载是多态的一种情况,另一种情况是覆盖,重载只能是在一个类中 重载 1.必须在一个类中 2.方法名相同而参数的类型不同 3.方法名相同而参数的个数不同 4.方法名相同而参数的位置不同 5.光返回值不同的方法不叫重载 假如A类和B类出现了方法名相同,参数的个数,类型,顺序也相同的情况,同时在C类中还是用了A类B类的这个方法,这种情况也不是重载,这两个方法还是可以通过调用方法的对象区别开来的。 就上述这种情况,如果A,B类的对象在C类中相互调用了对方的方法,那么,AB一定有一个可以转换为对方的类型,即它们之间是有继承关系的,这就是方法的覆盖而不是重载了~~
有关java语言继承特性说法错误的是
D肯定错误,java语言只能单集成
B也模棱两可,因为子类可以在构造方法中调用父类构造方法,不知道算不算继承
java中多态和继承的区别
这种说法是错误的。
多态是指的 父类里已有的方法,不同的子类可以根据不同的需要重写该方法,以达到不同效果。
方法继承是指 父类里已有的方法,子类可直接用父类的方法,而不用再去定义。
比如 父类 Animal 有 eat(),子类Dog重定义 eat(),具体是吃骨头,子类Cat重定义eat(),具体是吃鱼,子类Cow重定义eat()具体是吃草。这是多态。
父类Animal有方法 watch(),表示看,子类 Dog、Cat、Cow 可直接使用方法watch(),这是继承。
关于在java中关于继承的说法和在java中关于继承的说法错误的是的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。