面向对象高级篇----总结2

三、抽象类

抽象类(类中定义抽象方法后,该类必须声明为抽象类):关键字abstract,是一种特殊的父类,类中可以定义抽象方法,由子类继承后重写父类当中的抽象方法;

抽象方法:将共性的行为(方法)抽取到父类之后,具体的实现逻辑无法在父类中明确,就可定义为抽象方法,有子类继承父类重写抽象方法具体实现;

注意事项:1.抽象类不能实例化(如果抽象类可以实例化,即可调用类中定义的抽象方法,而抽

                     象方法当中并没有具体的逻辑实现代码,所以无意义);

                   2.抽象类中存在构造方法;

                   3.抽象类中可以存在普通方法

                   4.抽象类的子类要么实现父类当中抽象方法的重写,要么自己再次定义为抽象类

与abstract关键字冲突的:

                       1. final:被 abstract 修饰的方法,强制要求子类重写,被 final 修饰的方法子类

                        不能重写

                        2.private:被 abstract 修饰的方法,强制要求子类重写,被 private 修饰的方法

                        子类不能重写

                        3.static:被 static 修饰的方法可以类名调用,类名调用抽象方法没有意义

四、接口

接口:体现的思想是对规则的声明,Java中接口更多体现为行为的抽象;为程序制定规则,规范代码

接口关键字:interface,接口跟抽象类类似,只不过它当中只定义抽象方法;

接口不能实例化,接口与类之间是实现implements的关系,接口子类要么实现接口当中的抽象方法,要么重新定义为抽象类

 

 

 

五、多态

多态:同一个行为具有多个不同表现形式或形态的能力

多态前提:有继承/实现关系;有方法重写;有父类引用指向子类对象

多态成员访问特点:成员变量:编译看左边(父类),执行看左边(父类);

                                成员方法:编译看左边(父类),执行看右边(子类);

多态的弊端:不能访问子类的特有成员 

如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现ClassCastException (类型转换异常)------可用关键字 instanceof

 

六、包

包:关键字package,本质就是文件夹,用来管理类文件;

相同包下的类可以直接访问,不同包下的类必须导包,才可以使用!导包格式:import 包名.类名;

假如一个类中需要用到不同类,而这个两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值