抽象、封装、继承

本文介绍了面向对象编程的核心概念,包括类和对象的区别、this和super的使用、封装、构造方法的作用、方法重载与重写的原则及区别、继承机制、抽象类的特点等。

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

1.类和对象是面向对象的两个核心概念。

类是对一些事物的描述,是抽象的,概念的,对象是实际存在的个体,具体的,现实的

2.this:指对当前对象的引用,调用当前对象的属性和方法(解决成员变量的冲突,*只能在构造方法中使用,必须是第一条语句)

 super:代表调用直接父类对象

     super必须出现在子类中【子类的方法和构造方法】

     可以访问父类属性,方法,构造方法

     无法访问private成员

     封装:将类的成员属性声明为私有的,同时提供共有的方法实现对该成员的存取操作

封装1.修改属性的可见性---设为private

     2.创建公有的gettingsetting方法---用于属性的读写

     3.gettingsetting加入控制语句-属性--进行对属性值的判断

好处:隐藏类的实现细节,使用规定的方法来访问数据,加入控制语句,方便修改和实现

构造方法的作用是:创建对象时执行一些初始化操作

方法的重载:如果同一个类中包含两个或两个以上的方法,方法名相同,参数列表不同

方法的重载判断依据:

1.必须在同一个类里

2.方法名相同

3.参数列表不同

4.与方法的返回值类型和修饰符没有任何关系

static可以用来修饰属性(类属性)方法(类方法)代码块---不用修饰的成为实例属性和实例方法

在类加载的过程中,完成静态变量的内存分配,在执行静态块,两者是在创建对象之前执行的

类属性和类方法可以通过类名和对象名访问,实例属性实例方法只能通过对象名访问

*类变量不能是局部变量

*静态方法不能使用thissuper关键字

继承:实现代码的重用,java中只支持单继承,

继承条件下的构造方法的调用

1、如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。

2、如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。

3、如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。

特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。

抽象类的特点

抽象类不能实例化。可以没有,有一个或者多个抽象方法

抽象类只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类!

抽象方法必须在子类中被实现,除非子类是抽象类!

抽象类中可以有构造方法:其构造方法可以被本类的其他构造方法调用,若此构造方法不是由private修饰,也可以被本类的子类中的构造方法调用!

重载和重写的区别联系

重载:重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型,访问修饰符无关

重写:子类和父类之间的同名方法,要求方法名相同参数列表相同返回值类型相同,访问修饰符不能严与父类

                 位置   方法名      参数表     返回值          访问修饰符

重写:    子类   相同     相同        相同或字类    不能比父类严格

重载:       同类  相同     不相同                无关                无关

                                                                                                                                                                 

修饰的类不能被继承

修饰的方法不能被子类重写

修饰的变量成为常量

使用final修饰的引用变量不可指向另外一个的对象,变量的值是固定不变的,而变量所指向的对象的属性值是可变的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值