Java面向对象核心|Java关键字、面向对象的特性

类和对象

类的成员

1字段/属性/成员变量

初始化方法:就地初始化、构造方法、代码块

2方法:普通方法、静态方法

3代码块:普通代码块、实例代码块、静态代码块

4内部类

5接口

执行顺序:静态方法 -> 静态代码块 - > 普通方法 -> 普通/实例代码块 -> 构造方法

注:静态代码块只能初始化静态变量

关键字

1.final
1.1修饰变量

表示常量,无法修改

1.2修饰类

该类无法被继承

2.static 脱离对象,与类相关
2.1修饰属性

同一个类的不同对象共用一个静态属性

2.2修饰方法

静态方法可以访问静态数据成员,并可以更改静态数据成员的值

静态方法不能使用非静态数据成员,和调用非静态方法

this和super不能在静态上下文使用

注:只要跟实例相关 ,静态方法不能use。

2.3修饰代码块即静态代码块

功能:初始化静态成员属性

不管生成多少对象,静态代码块只执行一次,并且最先执行的

3.super

获取到父类对象的引用

3.1调用父类构造器

super() 必须写在子类构造方法的第一行,否则编译不通过

3.2调用父类的普通方法
4.abstract
4.1修饰类

抽象类不能被实例化,目的是被继承(抽象类可以有非抽象方法)

4.2修饰方法

抽象方法没有方法体,目的是被覆写

面向对象的特性

静态导入包中的静态方法和字段,更方便的写代码

继承 is-a
范围privatedefaultprotectedpublic
同一个包中的同一个类
同一个包中的不同类
不同包的子类
不同包的非子类
组合 has-a
多态
向上转型:父类引用指向子类的实例

直接赋值

方法传参

方法返回

补:向下转型:子类引用指向父类对象

动态绑定

当子类和父类存在同名方法时,程序运行时确定调用子类还是父类的方法

方法重写override

子类实现父类的同名方法,并且参数的类型和个数和返回值类型完全相同。

抽象

抽象类不能被实例化,目的是被继承(抽象类可以有非抽象方法)

抽象方法没有方法体,目的是被覆写(权限不能是private)

public abstract class AbstractTest {
    //成员变量
    private int a;
    int b;
    protected int c;
    public int d;

    //构造方法
    public AbstractTest() {
    }

    //抽象方法
    public abstract void method1();

    //普通方法
    public void method2() {

    }
}
接口

只能包含public的抽象方法,静态常量

接口不能被单独实例化

接口可以继承(extends)多个父接口

public interface InterfaceTest {
    //成员变量->静态常量,权限只有public
    int A = 0;

    //没有构造方法

    //只有抽象方法 故public abstract可省略
    void method1();

    //没有普通方法
}
抽象和接口的区别

抽象可以包含普通字段和方法,子类不需重写

接口的子类必须重写接口的所有抽象方法

抽象类可以实现多个接口,接口不能继承抽象类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值