Java基础:面向对象的三大特征

一.封装

1.概述

将类的某些信息隐藏在类的内部,不允许外部程序直接访问。只能通过该类提供的特定方法来实现对隐藏信息的操作和访问

要隐藏对象信息,同时留出访问的接口

2.特点

安全方便修改,独立易于维护,方便加入控制逻辑,限制使用者的不合理操作

3.实现方式

变量使用private,使用getter,setter方法与外部交互

类和方法的编写本身就是封装,提高了功能性

public class Cat{

        private String name; 

       public Cat(){

        }

        public void setName(String name){

        this.name=name;}

         public String getName(){

        return"我是一只叫"+this.name+"的猫咪"}

        public int getMonth(){

        return month;}

        public void setMonth(int month){

        if(month<=0){

                System.out.println("输入信息错误")}

         else

                this.month=month;

        }   

}

二.继承

1.概述

使用已经存在的类创建新类

新类的定义可以增加新的数据或功能,也可以使用父类功能,但必须继承父类全部开放的特征

使用extends关键字

2.逻辑关系

符合A is a B

3.继承的特点

子类自动拥有父类所有非private的属性和方法

通过子类对象既可以调用自身非private修饰的成员,也可以调用父类非private修饰的成员

父类不可以访问子类的特有成员,即使是共有的

继承提高了代码的可复用性,加快开发效率

继承的出现让类与类之间产生了关系,提供了多态的前提

4.注意事项

Java中类只支持单继承,不允许多继承,一个类只能有一个直接父类

多个类可以继承一个父类

class b extends a{}

class c extends a{}

java 中允许多层继承,一个类的父类可以再去继承另外的父类

class a{}

class b extends a()

class c extends b()

在Java中,子类和父类时一种相对概念,一个类是父类的同时也可以是子类

5.继承后子类父类成员变量的特点

子类的对象调用成员变量的时候,优先调用子类的变量,没有时用父类的替代

子父类中出现同名的成员变量时,在子类中需要访问父类中非私有的成员变量时,需要使用super关键字

6.继承后子类父类成员方法的特性

子类的对象调用方法时,优先使用子类的方法,父类的方法可以替补

子类的方法与父类相同时,子类覆盖父类的方法,称为override重写

7.继承的初始化顺序

父类中:静态代码块,构造代码块,无参构造方法,静态属性

子类中:静态属性,静态代码块,构造代码块,无参构造方法

顺序:1父类静态代码块 2子类静态代码块 3父类构造代码块 4父类无参构造方法

5子类构造代码块 6子类无参构造方法

8.方法重载和方法覆盖

方法重载:同一个类中,方法名相同,参数列表相同(参数个数,类型,顺序至少有一项不同)

方法覆盖:子类和父类的方法必须同名,方法形参列表必须相同,子类方法修饰符权限大于父类

返回值类型是基本数据类型时必须相同,是引用数据类型时相同或也是父子类关系

重写后,子类对象调用的和父类重名的方法和属性都是子类的

被final修饰的方法不允许在子类中覆盖

父类被覆盖的方法的参数列表中被声明为 final 的参数,在子类的覆盖方法的中可以不必指定为 final

子类覆盖方法声明的 异常列表中的异常类 必须与父类被覆盖方法声明的异常列表中的异常类 兼容

只有在 子类类体中可以访问 的父类或祖先类的方法才能被覆盖

如果通过子类对象访问父类方法,在 父类类体 中,访问到的任然是子类中的覆盖方法

静态方法不能被覆盖,只能被隐藏

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值