Java入门三

一、多态

二、对象初始化,构造函数

一、多态

Java中实现多态的两种形式:

(1)overload:重载

(2)overwrite:重写

重载即为函数名相同,返回类型相同,但函数参数不同。

重写即为对父类的函数进行重写,函数名相同,返回类型相同,函数参数也相同。

若函数名称相同,参数相同,返回值不同,则为语法错误。

Java中的函数均为默认的虚函数,不需要显式说明,都可以实现多态。

若为函数添加final关键字,则不能再被重写,避免了动态绑定,获取效率。

针对抽象编程可获得更大的灵活性,一般通过父类型的引用变量来访问子类对象。

▲抽象类

抽象类不允许实例化,可以没有函数实现而只有函数声明。在一个类中,如果有抽象函数必为抽象类,抽象类不一定有抽象函数。抽象类的声明如下:

abstract class A{
    //抽象类的实现
}

▲接口

接口是一种特殊的类,由全局常量和公共的抽象方法组成。接口的定义格式为:

public interface K{
    全局常量;
    抽象方法;
}
接口中的抽象方法必须为public权限,如果省略,则也为public权限。

接口是一种抽象类,若要使用必须通过子类,子类通过implements关键字来实现接口,定义格式如下:

class A implements K,M,N{
接口实现
}

其中,一个子类(Java中的类)可以同时实现多个接口,这就打破了Java的单继承局限。

接口类型的引用变量可以访问实现该接口的类对象。

二、对象初始化,构造函数

构造函数用来初始化对象的属性。

若在类的实现中,没有构造函数,则编译器会自动生成一个不带参数的默认构造函数;若自己写了构造函数,则编译器不提供。

一个类的构造函数,若第一个语句不是super()函数,也不是this()语句,则会自动调用super()函数。

super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

故构造函数中super()和this()不能同时使用。

super的其他使用方法:

(1)普通的直接引用

与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

(2)子类中用super来调用父类中被覆盖的成员函数

对象初始化的顺序:

(1)线初始化父类,再初始化子类

(2)变量初始化->初始化代码->构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值