DAY12:抽象类,接口,内部类

本文深入探讨了抽象类和接口的概念,包括它们的定义、特点和限制,以及它们之间的主要区别。介绍了抽象类如何用于模板模式,接口如何提供规则,降低程序耦合性,实现模块化开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象类

抽象类:能够定义抽象方法的类(其他与普通类相同,包含成员变量,方法,构造器,初始化块,内部类)

抽象方法:没有方法体的方法

抽象类的限制:

1.抽象类不能实例化对象(构造器为了给子类使用)

2.this指向当前子类对象

3.具体方法可以调用抽象方法

4.具体子类必须重写抽象方法

5.抽象子类可以继承继承链上所有的抽象方法

6.具体子必须实现继承链上的所有抽象方法

7.final 修饰的类不能被继承,final修饰的方法不能被重写,因此final和abstra永远不可能同时使用

8.abstr不能用于修饰局部变量,也不能用于修饰构造器

9..static和abstract不能同时修饰某个方法,private和abstr不能同时修饰方法

10抽象类可用于模板模式

       抽象父类只用定义需要使用的某些方法,把不能实现的部分抽象成抽象方法,留给其子类去实现;

       父类可能包含需要调用其他系列方法的方法,这些被调方法即可由父类实现,也可由子类实现

 

接口

接口:只能定义抽线方法的特殊类(1.8之前)

用于处理继承单一的局限性,其实一种 比抽线类还抽像的类,接口和类的关系是实现

接口的定义:

Interface 接口名{}

1.接口内的成员方法默认为公共抽象方法,public abstract 可以省略

2.接口内的属性都默认为公共静态常量

3.接口内可以定义公共静态方法

类与类:继承关系,单一继承,多层继承

类与接口:实现关系,多实现

接口与接口:继承关系多继承

4.1.8之后可以定义被default修饰的具体方法

 

接口与抽象类的区别:

1.接口更纯粹,有面向接口编程

2.类可以实现多个接口

3.接口与接口之间是多继承(接口只能继承接口)

4.接口也算特殊的父类,可以实现多态

5.接口的信息不会因为加载实现类信息而被加载(因为接口只要能在编译的时候,限制子类必须重写方法就可以了

6.接口对外提供规则

7.降低程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高开发效率)

内部类:

内部类:定义在类内部的类

 

成员内部类:

1.可以直接访问外部类的资源

2.又和外部类重复资源,优先访问自己

3..通过外部类名.this 来访问外部类当前对象

4.实例化:外部类名.内部类名 引用名= new外部类对象.new 内部类

第一种:Out o=new Out(); Out . InOne one=o.new InOne();

第二种: Out.InOne one=new Out().new InOne();

 

静态内部类:

1.只能访问外部类静态资源,可以通过类名区分资源

2.实例化:外部类名.内部类名 引用名=new 外部类名.内部类名( )

 

局部内部类:

1.不能使用访问修饰符.默认只能在方法内部访问

2.可以直接访问外部类资源,可以通过out.this  访问外部类资源

 

匿名内部类:没有名字的局部内部类

1.应用类型的子类型或者实现类

2.是当前 所在类的内部类

3.当在匿名内部类中访问外部方法的变量时,该变量默认为常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值