Java基础-面向对象的三大特性

前言

Java面向对象的三大特性,封装、继承、多态。

类和对象

首先了解一下什么是类?什么是对象?
Java把真实世界中某些具有共同特性的实体抽象出来,形成一个类,而某个具体的实例就是对象。比如说动物就是一个类,动物包含很多,比如猫,狗,狮子,大象等等这些就是对象。

封装

所谓的封装指的就是隐藏对象的属性以及实现的细节,仅对外提供对应的访问方式(也就是所谓的接口)将不需要对外提供的内容进行隐藏。

封装的优点

  • 减少耦合度。
  • 提高安全性。
  • 便于使用。当程序要做调整时,只需要修改实现代码,而无需修改调用程序的代码片段。

封装的要素

  • 类中的属性必须私有化(private)
  • 类中的属性必须有对应的getter、setter方法

继承

所谓的继承指的是一种能力,它可以使用被继承的类的所有非私有化(非private修饰的)的功能,并在无需重新编写原有类的情况下对这些功能进行扩展。

  • 通过继承创建的新类称为“子类”或“派生类”。
  • 被继承的类称为“基类”、“父类”或“超类”。

在Java语言中,一个类只能单继承,可以实现多个接口。继承就是子类继承父类的特征和行为,

类的继承格式

通过extends关键字申明一个类继承另一个类。

例如:
class父类{}
class子类 extends class父类{}

继承的特性

  • 子类拥有父类非private的属性和方法;
  • 子类可以拥有完全属于自己的属性和方法(对父类扩展);
  • Java是单继承(每个子类只能继承一个父类);但是Java可以是多重继承(如A继承B,B继承C)。

Super和This

  • Super关键字:可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
  • This关键字:是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

继承的优点

  • 减少代码重复、臃肿,提高代码可维护性。

多态

多态就是同一个接口,使用不同的实现,而执行不同的操作。

多态的三个必要条件

  • 继承(extends)
  • 重写(子类重写父类的同名方法)
  • 父类引用指向子类的对象。

多态的优点

  • 不必编写每一子类的功能调用,可以直接把不同子类当父类看,屏蔽子类间的差异,提高代码的通用率/复用率
  • 父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

多态示例代码

创建三个类 动物类、猫类、狗类。猫类和狗类继承动物类那么猫类、狗类就是子类,动物类就是父类。

/**
 * 	动物类
 */
public class Animal {
	public void out() {
		System.out.println("this is Animal!");
	}
}

/**
 * 	狗类
 */
public class Dog extends Animal{

	public void out() {
		System.out.println("this is dog!");
	}
}

/**
 *	猫类
 */
public class Cat extends Animal{

	public void out() {
		System.out.println("this is cat!");
	}
}

再创建一个测试类,代码如下:

public class Test {

	public static void main(String[] args) {
		//new 狗类
		Animal dog = new Dog();
		dog.out();
		
		//new 猫类
		Animal cat = new Cat();
		cat.out();
	}
}

输出结果如下:

this is dog!
this is cat!

文尾

文章均为学习阶段记录笔记,若有不妥请留言指正。谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值