类和对象(二)--三大特性

在java面向对象中,有三大特性:继承、封装、多态

一、封装 

封装的概念

    封装是java的三大特性之一,把对象的内部细节封闭起来,只提供操作对象属性的公共方法 。

    封装是面向对象编程语言对客观世界的模拟:例如:电视机,它的内部元件被封闭起来了,仅仅暴露电视机按钮来供人们使用,这样就没有人能任意的更改咱们的元件

    java里面通过将属性设置为私有的,对属性都使用暴露出来的公共接口,这样数据才更安全、更好维护。

封装的目的:

    通过公共方法访问数据,可以从方法里面加入逻辑,避免不合理的访问,可以进行数据检查,保证数据的完整性,防止不希望的交互和防止不合法的访问,便于后期的修改,提高代码的可维护性

封装的实现:

    1.隐藏对象的属性和实现细节,不允许外部直接访问(.),属性私有化

    2.提供公开的方法操作和访问数据

类的继承:

·继承的概念

    继承是java面向对象的一块基石,因为它允许创建分等级层次的类。

    继承就是子类继承父类的方法和特征,使得子类对象(实例)具有父类的实例域和方法,或者子类从父类继承方法,使得子类具有父类相同的行为

    生活中的继承:

        车可以分为自动车、机动车、高铁,这三类车都具有车的共性,但是同时又具有自身的特点和新的功能

        所以父类更通用,子类更具体

·类的继承格式    

     在java 中通过extends关键字可以申明一个类是从另一个类继承来的,一般格式如下:

class 父类{
}

class 子类 extends 父类{
}

·怎样理解继承:

    ·继承是java三大特性中的另一个特性

    ·继承是扩展类的功能,扩展出新的类能吸收已有类的属性和行为,并能扩展出新的能力

    ·继承:父类和子类

            ·基类:不由任何类派生出来的类

            ·父类:一个子类的最近的上层类

            ·子类:从一个类派生出来的类称为该类的子类

·继承的特性:

        ·子类拥有父类的非private属性和方法

        ·子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

        ·子类可以用自己的方式实现父类的方法

        ·java的继承是单继承,但是可以多重继承,单继承就是一个类只能继承一个父类,多重继承就是继承出来的子类还可以派生出它的下一层子类,即实现了java中分等级层次的类。

        ·提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)

        ·父类和子类的关系:is a :子类 is a 父类,

        ·java的子类不能获得父类的构造方法

·继承的关键字

    ·extends和implements关键字

        ·extends和implemtes这两个关键字来实现继承,而且所有的类继承与java.lang.Object,也成为超级类,当类中没有这两个关键字的时候,则默认继承object

          注意:这里提一点:所有在java.lang中的类不需要import,因为比较常用,java规定直接用既可以,而除java.lang之外包中的类,若要使用均需要使用import导入。

    ·super与this关键字

        super关键字指的是父类,我们可以通过super关键字来实现对父类成员的访问,也可调用父类的构造函数实现初始化父类,用来引用当前对象的父类。

        this:指的是当前对象,即是指向自己的引用。

package com.lemon.java6.day7.selfTest;

public class Borrower extends Member {
	public Borrower() {
		super();
	}
	
	/**
	 * 借款人借款实现方法
	 * @param amount
	 */
	public void borrow(double amount) {
		System.out.println("方法待实现");
}
	/**
	 * 重写父类方法
	 */
	public boolean recharge(Double amount) {
		
		boolean result = super.recharge(amount);
		if (result) {
			System.out.println("充值成功,可以去还款了");
			return true;
		}else {
			return false;
		}
	}
	void test() {
		super.recharge(100.0);//父类方法
		this.recharge(200.0);//子类重写的方法
	}

	
}


·构造器

    子类不能继承父类的构造器,如果父类的构造器带有参数,则必须在子类中显示的通过super关键字调用父类构造函数并陪以适当的参数列表

    如果父类构造器存在无参构造器,那么在子类的构造器中不需要使用super关键字调用父类构造器,系统会自动调用父类的无参构造函数



但若只定义带参数,而子类不调用父类带参构造函数,就会报错:



 多态的概念和好处:

·不同的对象对于相同的方法表现出不同的特征和响应

        如对自行车和汽车,他们都具有刹车的功能,但是它们的刹车方式却是完全不同的。

·多态的概念:

    用父类类型来接收子类的对象。java通过方法重写来实现多态。

    通过方法重写,子类可以重新实现父类的某些方法,使其具有自己的特征

    通过方法重写,相同类型的对象(变量),执行同一个方法表现出不同的行为特征,称为多态

·多态的优点

    提高了代码的复用性,简化了代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值