Java三大特性

Java三大特性

  1. 封装
  2. 继承
  3. 多态

封装

什么是封装

将类内部的实现隐藏起来,只暴露对外的接口。防止该类的代码和数据被外部类定义的代码随机访问。

封装的作用

  1. 降低代码的耦合性
  2. 隐藏信息、具体的实现细节
  3. 可以对成员进行更精确的控制
  4. 内部结构可以自由修改

继承

继承的作用

子类从父类继承方法,使其具有和父类相同的行为。

继承的特性

  1. 提高了类之间耦合性
  2. 子类可以访问父类非private的属性与方法
  3. 子类可以重写父类的方法
  4. 子类可以拥有自己的属性和方法,对功能进行扩展
  5. Java中只支持单继承,但是可以多重继承

super与this关键字

super用来访问父类成员或当前父类,

this指向当前类的引用

final关键字

用final关键字声明的类是最终类,无法被继承

用final关键字声明的方法无法被重写

用final关键字声明的变量无法被修改

构造器

子类不会继承父类的构造器,只是显示或隐式地调用。如果父类构造器需要参数,则在子类构造器中使用super();传入匹配的参数。

多态

什么是多态

​ 一个 父类类型 的变量,指向其子类创建的对象,这个父类的变量能够调用子类中重写的方法,使得父类变量拥有了不同的行为特征。

​ 在编译时 方法的行为 表现的是父类方法的行为特征,而运行时表现的是子类重写方法的行为特征

​ (简单说就是向上转型:父类引用指向子类对象)

为什么使用多态,多态的特点

  1. 代码复用,减少代码冗余

  2. 减小代码耦合性

    使用了某个子类重写的方法,当业务需求变动时仅需修改该子类的方法,而不需要牵连到其他代码。

  3. 便于拓展功能

    通过重写子类的方法,可以使对象实现不同的功能

实现多态的方式,以及他们的区别

方式:2种(继承,实现接口)

继承方式

使同一类别或拥有一定规律的类作为父类,具体的行为方式依靠子类实现

//父类
public class Car {
    public void show(){
       System.out.println("汽车"); 
    }
}
//子类
public class BMW extends Car {
  	@Override
    public void show(){
        System.out.println("我是宝马,土豪专用。"); 
    }
    public void duXiang(){
         System.out.println("这是我独享的moment。"); 
    }
}

//多态使用
Car car = new BMW();	//向上转型
car.show();	//输出:我是宝马,土豪专用。

//怎么使用子类独有的方法:向下转型(强转)
BMW baoma = (BMW)car;
baoma.duXiang();
实现接口方式
//接口
public interface XuanYaoI {
    public void show();
}
//实现类
public class Car implements XuanYaoI {
    @Override
    public void show() {
        System.out.println("这车一般般,也就100万,发条朋友圈。");
    }
}

//使用
XuanYaoI xuanyaoI = new Car();
xuanyaoI.show();	//输出:这车一般般,也就100万,发条朋友圈。
(额外)继承和接口的区别
不同点抽象类接口
修饰符extendsimplements
是否支持多继承Java只支持单继承Java类支持实现多个接口
变量定义变量,常量只能定义全局常量
方法定义可以有抽象和非抽象的方法,可不定义抽象方法只能定义抽象方法
子类方法重写只需要重写需要的方法必须实现接口的所有方法
抽象层次对整个类进行抽象,包括属性、行为对局部行为进行抽象
设计层次自底向上抽象泛化自顶向下设计
跨域抽象针对一系列具有相同特征的的类可以跨域不同的类

实现多态的必要条件

  1. 继承
  2. 重写
  3. 父类引用指向子类对象

多态的要求

  1. 子类的 变量/方法 的作用域必须大于父类
  2. 子类无法访问父类的private变量
  3. 不能用子类的静态方法隐藏父类的实例方法
  4. 不能用子类的实例方法隐藏父类的静态方法
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值