JAVA学习 Day12(面向对象总结)

面向对象总结


继承: 类 和 类, 单继承 extends
子类继承父类:
1.继承父类中所有可见的成员方法和成员变量
2.父类的构造方法不能被子类继承, 只能被子类调用
3.子类可以重写父类的方法
方法名和参数列表一样
返回值类型, 小于等于 父类的返回值类型
权限, 大于等于 父类的权限
子类调用父类:
super() -> 调用父类无参构造方法
super.m1() -> 调用父类的成员方法
super.a -> 调用父类的成员变量
super 只能在子类中使用
this: 当前对象, 自己

static: 属于类, 通过 类名. 来调用
static{} -> 静态代码块, 类加载时执行

类加载:
1.创建类的对象
2.调用类的静态成员
3.创建子类对象, 先加载父类, 再加载子类
4.调用子类的静态成员, 先加载父类, 再加载子类
5.Class.forName(String className): 手动加载
java.lang.String java.util.ArrayList

抽象abstract:
抽象方法: 只能存在于抽象类或者接口中
抽象类: 可以用来放抽象方法
不能实例化
有构造方法, 给自类调用的
final:
final class -> 不能被继承
final void m1() -> 不能被重写
final int a -> 不能被改变, 常量, 必须初始化
成员变量a, 必须在创建对象时初始化
final static int B -> 必须初始化, 静态常量
类加载时, 必须初始化完成
常量: 固定几个选项时, 通常类型都是int
将选项起个名字-变量, final 变量
如果常量要在外部无关类中使用, 通常为了方便, 都会定义成static

实现: 接口
抽象方法 -> 必须被实现类重写/覆盖的
静态常量 -> 直接通过接口类型使用
默认方法 -> 有具体实现, 可以不被重写
静态方法 -> 直接通过接口类型使用
私有方法 -> 给默认方法提供的

使用接口, 必须有实现类, 并且创建实现类对象

多态: 编译时看左边, 运行时看右边
父类 a = new 子类();
接口 b = new 接口实现类();
a.m1(): 说明m1声明在父类中
子类重写了m1方法
编译时类型: 只在编译时有效
泛型
a 想要调用子类特有的方法, 需要强制转换
可能会出现 ClassCastException
解决方式, 提前使用 a instanceof 子类
意义: 扩展方法的功能

内部类:
成员内部类 -> 类中
public class Outer{
public class Inner{
}
}
Outer.Inner in = new Outer().new Inner()
局部内部类 -> 方法中
public void m1() {
int a = 10;
class Inner {
// 使用a, a必须是final
}
}
只在方法中可以使用, 一次性
匿名内部类
接口/抽象类 b = new 接口/抽象类() {
// 真正的类, 重写抽象方法
}
只能创建一次对象
静态内部类 -> 属于类的

        public class Outer{
            public static class Inner{
                      
                       }
        }
        Outer.Inner in = new Outer.Inner()

权限:
外部类: public/(default)
成员内部类: public/protected/(default)/private
局部内部类: 不能使用
方法: public/protected/(default)/private
成员变量: public/protected/(default)/private
局部变量: 不能使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值