多态的使用总结,this关键字不能在静态方法中使用,对构造方法的理解,static关键字详解

文章详细阐述了Java编程中对象的创建和方法调用,包括父类与子类之间的关系,构造方法的使用,如无返回值、通过new关键字调用,以及构造方法的重载。同时,讨论了static关键字的作用,如静态变量和静态方法的特性,强调main方法作为程序入口及对类成员的访问规则。此外,提到了访问修饰符(private,默认,protected)的影响。
摘要由CSDN通过智能技术生成

例如father a=new child ();

对于father类里面特有的方法,可以通过a对象直接调用,而father类里面有,并且在child类里面经过重写的方法,那么经过a调用时,就会直接调用子类的该方法,而对于子类里面特有的方法,也就是父类里面没有的,那么可以把对象a进行类型转换后,在调用该特有方法。也就是说,对象a只可以直接执行father类里面有的,执行的结果要看子类是否重写了,如果重写过了,就直接执行子类的,如果没有重写,那就直接执行父类的。

this方法是指向当前对象自身的一个引用,而static方法属于类,是不属于任何的一个对象的方法,所以在static方法中不可以使用this关键字进行指代。比如main方法。

对构造方法的理解

1.构造方法不可以有返回值

2.例如teacher a =new teacher();

构造方法就是后面的teacher(),不过用户在测试类中(main方法中)不能够直接调用构造方法,必须和new关键字配套使用。由new关键字来分配构造方法创建对象所需空间。在非静态方法中可以通过this,和super关键字调用构造方法。

3.构造方法的重载:可以使类的对象具有不同的初始值,使对象初始化方便。d191b3bcd7c74b95839be2342ffcaaee.jpg

就比如上图无论使用怎样 的构造方法都会使得成员变量有合适的初始值。

static关键字

1.static关键字修饰的静态变量

在类加载时就分配了空间并且初始化,不是向成员变量一样等对象创建好了再初始化,只依附于类,故可以通过类名直接调用(前提是不是private),有点类似其他语言中的全局变量。可用来在实例之间进行通信,和跟踪改类实例的数目。如下图6162ba64ff10406baffb082a505787b7.jpg

 2.静态方法

1.静态方法一般通过类名访问而不是实例对象,当然实例对象也可以访问不过不推荐。

2.静态方法里面只可以有静态变量,或其他静态方法,或者自己在静态方法内部定义的局部变量,不可以有非静态的成员变量。和非静态方法(因为内存加载的顺序问题)

3.静态方法中不可以有this

4.子类不能重写父类的静态方法,也不能把父类的非静态方法重写为静态的。可以声明和父类静态方法相同的方法对父类的静态方法进行隐藏。

5.main方法是程序的入口处,所以如果要在main方法中访问其所在类的成员变量或方法,就需要首先创建该类的实例对象。但是如果不是main方法而是其他方法,就可以通过变量名直接访问。

6.static{   }静态语句块在其所在类加载时就会执行,而且仅仅执行一次,常常用来进行静态变量的初始化。

private修饰的变量要想直接访问只能在本类中进行

默认的:可以在同一个包下的不同类中进行创建对象,进行直接访问

protected:在同一个包下或者有父子关系,就可以创建对象进行访问。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值