JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法

os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
代码:

/*默认的:子类中所有的构造方法默认都会访问父类中无参构造方法*/

//父类
class Father {
	//无参构造函数
	public Father() {
		System.out.println("父类无参构造函数");
	}

	//有参构造函数
	public Father(int num) {
		System.out.println("父类有参构造函数");
	}
}

class Son extends Father {
	//子类无参构造函数
	public Son() {
		System.out.println("子类无参构造函数");
	}

	//子类有参构造函数
	public Son(int num) {
		System.out.println("子类有参构造函数");
	}
}

class Demo {
	public static void main(String[] args) {
		Son s1 = new Son();
		System.out.println();

		Son s2 = new Son(1);
	}
}

结果:



Java优秀,值得学习。
学习资源:itcast视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
如果您觉得博文有可以改进的地方,留言即可。

时间: 2024-10-22 13:49:43

JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法的相关文章

子类构造函数是否会默认调用父类的无参构造函数

1 package test; 2 3 public class TestB { 4 5 public TestB() { 6 System.out.println("TestB的无参构造函数..."); 7 } 8 9 } 1 package test; 2 3 public class TestA extends TestB { 4 5 public TestA(int i) { 6 System.out.println(i); 7 } 8 9 public static void

在子类中,一定要访问父类的有参方法?

abstract class Person{ private int age; private String name; public Person(int age,String name){ this.age=age; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name

42)子类继承 有参父类 和无参父类

1)  子类继承有参的父类,那么  必须在子类的  构造函数的初始化列表那里,给父类赋值,比如说 父类 Student 的构造函数  是   Student(int  age  ,string  name) 然后我的子类的构造函数 须是: Student3(int  age ,string   name,int   sorce):Student(age,name) {                          } 2)总之,不管你是  有参父类构造函数  还是无参构造函数  那么就有了

JavaSE8基础 子类构造函数中写super语句去显式指定父类的构造函数

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* *默认是 子类的构造函数先去调用父类的无参构造函数,但是问题就来,如果父类没有无参构造函数怎么办? *通过super去显式指定父类的构造函数 */ //父类 class Father { //有参构造函数,int public Father(int num) { System.out.println("

父类不含无参构造方法子类构造方法必须显式调用

一直不知道怎么取这个标题... 前两天发现我父类中定义了一个带参构造方法,然后子类继承后构造方法必须先调用父类方法带参构造方法,方法调用为super(参数,...). 然后我就上网查,可能关键字没搞对..哈哈...一直没明白,后来发现,如果父类含有不带参构造方法,那么子类就不需要上述操作. 那么为什么呢? 先说下类实例化的过程,也就是new一个对象的时候 首先默认运行的是类中无参的构造方法(这个可能在实例化过程java会为每一个类自动创建的),这是java默认首先运行的: 当然如果你重写无参的了

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量

JAVA Socket无参构造方法的使用

1.Socket类的构造方法很多,只有无参构造方法不会尝试建立连接,其他构造方法,都会尝试建立连接的,如果建立连接失败,将会抛出异常.如果想为Socket设定连接超时时间,此时就需要使用无参构造方法,使用方法如下: 大家可能有些奇怪,设置的超时时间明明是1ms,为什么花了2ms后建立连接成功,而不是报超时异常.看看代码中的注释,就明白了,那个超时时间是三次握手时间.除此之外的时间都不算在内的.如果关闭服务端,再次运行改程序,则会报错:Exception in thread "main"

记[email protected]和@Builder一起用无法添加无参构造方法的坑

转自:https://blog.csdn.net/w605283073/article/details/89221853 今天和小伙伴讨论一个mybatis-plus的一个诡异问题,最后定位到原因竟然是[email protected]和@Builder一起用无法添加无参构造方法引起的,非常隐蔽. 很多框架都是同反射等调用无参数构造方法来创建实例的,需要注意. 单独使用@Data注解,会生成无参数构造方法. // IntelliJ API Decompiler stub source gener

JavaSE8基础 不通包之间的类进行访问 通过包名来限定类

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码一: package cnblog.jizuiku.Tool; //其他的包中的类要想 访问到这个类,那么就需要为Tools加修饰符 我加的是最大权限 public public class Tools { public static void sayHello() { System.out.println("h