Java—面向对象总结

总体知识点

1. 封装

  • 1.1 什么是封装
    1.2 构造器
    1.3什么是重载
    1.4 this
    1.5 static

2. 继承

  • 2.1 什么是继承
    2.2 子类会继承些什么?
    2.3 super关键字的使用
    2.4 重写

3. 多态

  • 3.1什么是多态?
    3.2多态的前提
    3.3多态中成员访问的特点
    3.4多态的好处和弊端

  • 4. 上转型 下转型
    4.1什么是上转型
    4.2什么是下转型
    4.3上转型和下转型的作用

5. 抽象
5.1抽象类的概述及其特点

  • 5.1什么是抽象

6.final的使用
7.接口

6.其他小细节及强调点

Java面向对象三大特性:封装 继承 多态
this 关键字总结
类的成员方法
类的构造方法
可以使用 代表当前对象
this(实参);.//调用本类构造器
this.成员变量‘;
this.成员函数();
类的普通方法 可以使用 代表当前对象
类的静态方法 不可以使用this.super
super关键字
构造方法
super(实参);//调用父类构造方法对父类初始化
super.数据成员;
super.成员函数();、
this和super只能出现一次,this里调用默认的super()
实例化子类对象
1加载父类
2.加载子类
3.调用子类构造器(默认super)
执行父类构造代码块
执行父类构造方法
执行子类的构造方法
执行子类构造方法

类的继承层次结构中 如果子类中重写父类中相同形式则构成函数重写
重载 在同一个类中*

study(int) study_int

study(int ,int) study _ int _int
这样区分重载
重写的话子类和父类中
子类和父类形式相同 子类会把父类的相同方法覆盖 但是虽然覆盖了 仍然可以通过super.()调用 以及父类的对象调用该方法仍然是以前的方法

**

  • 方法重写和重载 重载 一个类中,方法名相同,形参列表不同,对于返回值类型,修饰符都没有要求 重写
    父子类,子类中定义的方法,函数名、形参列表、返回值、与父类的函数 一模一样,就构成重写 。但是
    权限修饰符不能变小,抛出异常的范围不能变大。
    重写方法对父类继承的方法会产生覆盖。不管是通过父类引用还是通过子类引用都可以调用,父类引用无法调用子类新增的方法。 重写的前提:
    1.继承层次结构
    2.方法重写
    3.父类引用指向子类对象
    4.父类引用 调用 子类重写方法 抽象类 用abstract修饰的类 抽象类 正常类加上abstract 不完整的类 包含抽象方法 即abstract 修饰的没有函数体的类记得分号结尾。 abstract 类型();
    包含抽象方法的类,一定是一个抽象类; 抽象类中可能包含抽象方法; 抽象类无法实例化对象,一般作为父类使用; 定义抽象类的引用
    指向 子类【重写抽象方法】 对象【多态体现】

final用法总结

1----->final修饰类

  • final修饰的类不能被继承,该类不能作为父类进行派生

2----->final修饰方法

  • 方法不能被重写、

3----->使用final 修饰变量

  • 1.final 修饰成员变量

    • 2.final修饰局部变量
    • 3.final修饰的引用变量

    ★★★成员变常量 不承认默认的值,必修用户主动进行初始化★★★

    public final int num2 ; ★★★如果只是这样没有 构造代码块 或者 构造方法进行赋值 则报错★★★
    三种方式 1->显示初始化

    public final int num2 = 2;
    

    2->构造器初始化 。假如先显示初始化后值就无法通过构造器初始化了 public final int num2 ; public son(int num2) { this.num2 = num2; }
    3->构造代码块赋值 public final int num2 ; { num2 =2; }
    ★★★总结 :对象构造完成前 可以对 final常量进行初始化,初始化成功后其值不能改变

    final修饰局部变量

    1. 局部变量就变成了常量,初始化后值无法改变
    2. final修饰的局部变量 不在栈空间开辟内存, 在常量区开内存

    ★★★特点/好处 其值初始化确认后无法修改★★★

    final修饰的引用变量

    1. 其值不能修改 但是其指向的堆空间里面的数据可以修改
  • 补充final修饰的变量是常量,常量命名方式 都大写 多个单词用_分隔

     	final int GOOD_DOG = 5;
    

接口

  • 接口类似干爹,继承是亲爹

  • 接口定义格式

     intertface 接口名 {
      	 public static final 数据类型 成员;
     	 public abstract 返回值 方法(); 
      }
    
  • 接口中的变量如果不写修饰符* 就写 数据类型 成员 系统默认是public static final 修饰的;

  • 接口中的方法如果不写修饰符* 系统默认是public abstract 修饰的;

  • 接口不是类,侧重功能。

  • 实现类如果不是抽象类--则必须重写接口的所有抽象方法

  • 可以定义接口的引用 指向 实现类对象,通过接口的引用调用被重写抽象方法

  • 接口的实现类 可能是正常类(重写所有抽象方法) 也可能是抽象类(有抽象方法未重写)

  • 接口里就不存在需要初始化的变量,所以接口里没有构造器

  • 不能把接口实例化。使用接口,一般充当父类,定义接口的实现类(implements)

  • 接口里可以没有常量和抽象方法

  • 接口可以实现多继承是对ava单继承的补充

  • 接口和接口之间存在继承关系 并且可以实现多继承
    在这里插入图片描述
    在这里插入图片描述

package

  • 解决项目里的命名冲突问题,包就是文件夹
  • 命名规则 公司域名+类名
  • //如果在一个类中 使用其他包的类 则一定要将该类引入
  • //引入方法1: import 包名.类名
  • //引入方法2 类的全包名 包名.类名 com.baidu.Person p = new com.baidu.Person(“zs”,22);
  • //引入方法3 import 包名.*;效率过低一般不使用
  • /注意 就这个来说必须把person类先编译 或者 同时编译两个类
  • package 声明当前类所在包\
  • 解释的时候 必须要完整的名字 即 包名.类名
  • 在这里插入图片描述
    -lang包不用导入
  • package必须出现在第一行 且只能出现一个
    -import 可以多次使用 导入多个包

四种权限修饰符

在这里插入图片描述

常见修饰符总结

权限修饰符
状态修饰符
抽象修饰符


权限修饰符 默认 public
状态修饰符 final (不能被继承)
抽象修饰符 abstract

在这里插入图片描述
在这里插入图片描述
private final和 abstract 修饰符 不能一起使用
在这里插入图片描述

内部类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值