① java子类可以继承父类的构造方法吗
一,java子类不能继承父类的构造方法(可以调用,但不是继承):
1、构造方法的定义是与类的名称相同:如果子类能够继承父类的构造方法,那么在子类的构造方法中就有不同于子类名称的构造法;
2、这与构造方法的定义不符,因此子类是不能继承父类的构造方法的;
3、以上参考资料来源:http://bbs.csdn.net/topics/360118234
二,子类继承父类时,需要注意以下三点:
1、在子类继承父类的时候,子类必须调用父类的构造函数;
2、在父类有默认构造函数,子类实例化时自动调用,在父类没有默认构造函数,即无形参构造函数,子类构造函数必须通过super调用父类的构造函数;
3、在java的继承当中子类是不可以继承父类的构造函数,只能调用父类的构造函数。
② java中implements是什么意思在什么时候使用
implements实现的意思。在Java中是实现接口时使用implements。
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承
JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,
但implements可以实现多个接口,用逗号分开就行了比如:
classAextendsBimplementsC,D,E
接口实现的注意点:
a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。
b.接口中的方法都是抽象的。
c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。
与Extends的不同
extends,可以实现父类,也可以调用父类初始化this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改implements,只定义接口需要具体实现,或者可以被修改扩展性好,用extends。
③ java子类如何继承父类怎么写啊
通过extends进行继承。
语法:<修饰符>class<子类名>extends<父类名>{.....}
举例:
publicclassParent{//定义父类
}
publicclassSonextendsParent{//通过extends,son类继承了父类Parent
}
补充:
(1)继承就是在现有类的基础上构建亲的类。
(2)当一个类继承一个现有类后,可以对被继承类中的属性和方法进行重用。
(3)在Java中,一个类只能有一个父类,不支持多继承。
④ 关于java中子类继承父类的构造方法
java继承中对构造函数是不继承的,只是调用(隐式或显式)。
举例说明:
public class FatherClass {
public FatherClass() {
System.out.println(100);
}
public FatherClass(int age) {
System.out.println(age);
}
}
public class SonClass extends FatherClass{
public SonClass() {
}
public SonClass(int c) {
System.out.println(1234);
}
public static void main(String[] args) {
SonClass s = new SonClass(66);
}
}
编译后执行结果如下:
分析:SonClass s = new SonClass(66);执行这句时,调用
public SonClass(int c) {
System.out.println(1234);//系统会自动先调用父类的无参构造函数(super())
}
在这个构造函数中,等价于
public SonClass(int c) {
super();//必须是第1行,否则不能编译
System.out.println(1234);
}
所以结果是 100 1234
3.如果子类构造函数是这样写的
public SonClass(int c) {
super(22);//必须是第1行,否则不能编译
//显式调用了super后,系统就不再调用无参的super()了;
System.out.println(1234);
}
执行结果是 22
1234
总结1:构造函数不能继承,只是调用而已。
如果父类没有无参构造函数
创建子类时,不能编译,除非在构造函数代码体中第一行,必须是第一行显式调用父类有参构造函数
如下:
SonClass (){
super(777);//显示调用父类有参构造函数
System.out.println(66);
}
如果不显示调用父类有参构造函数,系统会默认调用父类无参构造函数super();
但是父类中没有无参构造函数,那它不是不能调用了。所以编译就无法通过了。
总结2:创建有参构造函数后,系统就不再有默认无参构造函数。
如果没有任何构造函数,系统会默认有一个无参构造函数。
⑤ JAVA中,子类将继承父类的所有属性和方法么~为什么
是的,子类将继承父类的非私有的属性和方法。
在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。
1、如果给子类i提供get和set通过get调用的自然是子类的。
2、如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写。
(5)java继承父类方法扩展阅读
在继承中用到super调用父类的构造
privateStringname;
privateStringsex;
publicxinxin1(Stringname,Stringsex)
{
this.name=name;
this.sex=sex;
}
publicvoidhello(){
System.out.println(“嗨!我是”+name+”我是”+sex+”孩”);
}