Java面向对象的四个特性

1、封装

封装指的是将描述一个对象的属性和行为封装到一个模块里,Java中称为类。属性用变量定义,行为用方法表示,方法可以访问修改同一个对象中的属性。

2、抽象

抽象指的是将现实世界的实际存在或逻辑抽象为一个类,要实现数据抽象和过程抽象。如汽车类,要在类中定义汽车的品牌,颜色等属性,以及跑、加油等方法。在Java中具体的语法又有抽象类和接口。

1)抽象类

  • 包含有抽象方法的类为抽象类,必须用abstract修饰
  • 抽象方法不含有方法体,即具体的实现
  • 继承抽象类的子类必须实现父类的所有抽象方法
  • 抽象类中可以有非抽象方法

2)接口

Java中不能多继承,只能继承一个类,但却可以实现多个接口。在Java编程时常常用实现接口的方式表征类具有的特性。

  • 接口中的方法都是抽象方法,都默认为public abstract
  • 接口中的方法不能有具体实现,只能由实现接口的子类实现,或者用static修饰。

3、继承

继承指的是子类继承父类,继承的特性有:

  • Java中为单继承,即一个类只能继承一个父类
  • Java可以多重继承,即A继承B,B继承C
  • 子类继承父类的所有非private属性和方法,并且可以修改(重写)父类的方法,也可以拓展自己的属性和方法

4、多态

多态指的是一种行为有多种不同的表现形式。

多态存在的必要条件

  • 继承
  • 重写
    重写和重载都是Java多态的一种表现形式
    重写: 子类对父类方法逻辑的重新编写,参数形式和返回值都不能变化
    重载: 在同一个类中方法名相同,参数列表不同的方法称为重载。返回值也可以变化,在调用时根据给定的参数进行方法的区分。常见的一个类中几个不同的构造器就是重载
  • 用父类声明创建子类对象(父类引用指向子类实例)
    如Father father = new Son()

方法的执行过程

代码示例

public class Father {

	public void eat() {
		System.out.println("father eat");
	}
}


public class Son extends Father{

	@Override
	public void eat() {
		System.out.println("son eat");
	}

	public static void main(String[] args) {
		Father people = new Son();
		people.eat();
	}
}

用eat方法,

首先编写一个Father父类,有一个eat方法,再编写Son类继承Father类重写eat方法,在main方法中父类声明子类对象Father people = new Son(),再调用eat方法。
方法的执行过程为: 先在Father类中寻找eat方法,若没找到则抛出异常,找到了再去找子类的eat方法,若子类重写了eat方法则运行子类的方法,否则运行Father类的方法。如图,运行结果为son eat

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值