【JavaSE】抽象类和接口和内部类
创始人
2025-01-09 04:39:09
0次

目录

  • 抽象类
    • 抽象类,抽象方法定义格式
    • 抽象类,抽象方法注意事项
  • 接口
    • 接口的定义形式
    • idea创建接口步骤
    • 接口特性
  • Object类
  • 内部类
    • 静态内部类
      • 静态内部类特性
    • 实例内部类
      • 特性
    • 局部内部类
    • 匿名内部类

在这里插入图片描述

抽象类

抽象类的实现就是为了更好地实现多态。

抽象类,抽象方法定义格式

在类,方法定义的访问修饰限定符前面或者后面加上关键字abstract。

abstract public class Base {     abstract public void fun(); } public abstract class Base {     public abstract void fun(); } 

抽象方法一定不能有具体实现,就跟c语言中函数声明一样。

抽象类,抽象方法注意事项

1.抽象类不能实例化对象

抽象类实例化对象

2.抽象类中可以有抽象方法也可以有普通方法

抽象类中方法

3.抽象方法不能被private,static,final修饰,因为抽象方法是用来重写的

修饰

4.抽象方法只能存在于抽象类中

抽象方法存在

5.当普通类继承了抽象类就必须重写抽象方法,抽象类继承抽象类可以不重写抽象方法

普通类
抽象类

当我们有抽象类来用多态就更简单:

public class Shape {     public abstract void are(int a);     } class Rect extends Shape{     @Override     public void are(int a) {     System.out.println(a*a);     } } class Cycle extends Shape{     @Override     public void are(int a) {     System.out.println(a*a*3.14);     } } 

接口

接口的定义形式

接口定义与类定义差不多,将类定义的关键字class改为使用关键字interface来定义接口:
接口名一般采用大驼峰且一般使用形容词并且在最前面加一个大写字母I

public interface ISwimming(){ } 

idea创建接口步骤

1.鼠标右击包,new,左击Java Class

1

2.左击interface,输入接口名

2

接口特性

1.接口不能实例化对象

shili

2.接口当中成员变量默认是public static final修饰。

成员变量

3.接口中的方法默认为public abstract 修饰

成员方法

4.接口中的方法从JDK8之后,用default修饰后就可以有具体实现。
defa修饰

5.接口中不能有静态代码块和构造方法

静态代码块和构造方法

6.接口中可以有static修饰方法,修饰后就可以有具体实现
static修饰

7.接口间的“继承”(用延伸更合适)用extends,此处可多延伸
接口继承

8.类使用接口用关键字implements,可多接口
如果一个类既要继承也要实现接口,那一定得继承在前
类使用接口

Object类

Object类在Java中默认是所有类的父类,可以在子类中对Object类的方法进行重写来实现需求。

内部类

类中在定义一个类,这个类中的所有都是为外面这个类服务就叫内部类。

静态内部类

静态内部类就是在类定义的class关键字前加上 static

静态内部类

静态内部类特性

1.实例化静态内部类格式:外部类.内部类 变量名 = new 内部类();
实例静态内部类

2.静态内部类中不能直接访问外部类的非静态成员,要访问就要实例化一个外部类对象
内部类访问外部类成员

3.外部类可以访问内部类所有(包括private修饰)成员,也用实例化来访问
外部类访问内部类

实例内部类

就是直接在类中定义一个普通类

特性

1.不能定义静态成员,非要定义就加final修饰为常量
2.实例化实例内部类:先实例化外部类在
内部类 变量名 = 外部类对象名.new 内部类();
实例内部类实例化
3.实例内部类能直接访问外部类的所有成员(包括private修饰)
4.外部类可以通过实例化实例内部类访问实例内部类所有成员
5.如果实例内部类中有与外部类同名成员,默认访问实例内部类成员,访问外部类成员格式外部类.this.变量名
内部

局部内部类

定义在方法中的类(很少用),只能在方法内部使用

匿名内部类

多用于接口,定义格式如下:

new 接口(){ 	//重写抽象方法 }; 

当匿名内部类用于类时不能被接收,但是用于接口就可以被接收。
接口

相关内容

热门资讯

最新技巧!!wepoker有没... 很多人使用云端 AI 时,都担心wepoker有没有辅助、内部资料上传带来隐私风险。这款本地运行的 ...
一秒答解!wepoker怎么增... 您好,一秒答解!wepoker怎么增加运气,WPK有挂吗确实有挂下载(最初有辅助挂)这款游戏可以开挂...
一秒答解!wpk辅助器,德扑之... wpk辅助器AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断网...
分辨真假!德普之星透视辅助,w... 分辨真假!德普之星透视辅助,wepoker开挂透视教程脚本(总是是真的有辅助挂)AI 是一款可以让一...
每日必看推荐!wepoker怎... 您好:wepoker怎么提高运气这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
推荐一款!!wepoker黑侠... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
一秒答解!wpk俱乐部辅助器,... 一秒答解!wpk俱乐部辅助器,德扑之星开挂脚本助手(固有有辅助器)AI 是一款可以让一直输的玩家修复...
玩家攻略!wepoker好友房... 您好,玩家攻略!wepoker好友房开挂,WPK哪里有挂神器(一贯有开挂)这款游戏可以开挂的,确实是...
重大通报!!智星德州可以透视吗... 很多人使用云端 AI 时,都担心智星德州可以透视吗、内部资料上传带来隐私风险。这款本地运行的 AI ...
玩家爆料!智星菠萝有挂吗,WP... 智星菠萝有挂吗AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断...