java中,什么是封装,继承,多态和抽象,好处与用法

Java的四大特性分别是封装,继承,多态与抽象。

1.封装

封装的概念:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。

封装的好处:

(1):隐藏实现细节。好比你买了台电视机,你只需要怎么使用,并不用了解其实现原理。

(2):安全性。比如你在程序中私有化了age属性,并提供了对外的get和set方法,当外界 使用set方

              法为属性设值的时候 你可以在set方法里面做个if判断,把值设值在0-80岁,那样他就不能随意

              赋值了。

(3):增加代码的复用性。

              好比在工具类中封装的各种方法,你可以在任意地方重复调用,而不用再每处都去实现其细节。

(4):模块化。封装分为属性封装,方法封装,类封装,插件封装,模块封装,系统封装等等。

               有利于程序的协助分工,互不干扰,方便了模块之间的相互组合与分解,也有利于代码的调试

       和维护。比如人体由各个器官所组成,如果有个器官出现问题,你只要去对这个器官进行医治

        就行了。

2.继承

继承的概念:从已知的一个类中派生出新的一个类,叫子类。子类实现了父类所有非私有化属性和方法,

并能根据自己的实际需求扩展出新的行为。

继承的好处:

(1):继承是传递的,容易在其基础上构造,建立和扩充出新的类。

(2):简化了人们对事物的认识和描述,能清晰体现相关类之间的层次结构关系。

(3):能减少数据和代码的冗余度。

(4):大大增加了代码的维护性。

3.多态

多态的概念:多个不同的对象对同一消息作出响应,同一消息根据不同的对象而采用各种不同的行为方法。

多态的好处:主要是利于扩展。直接上代码自己来体会。

//比如我在马剑威磨砺营毕业后,找到一份工作,前期买了一辆大众车,实现代码如下:
public class test{
	public static void main(String[] args){
		DZ dz =new DZ("大众");
		people p =new people();
		p.drive(dz);
	}
}

class people{
	public String name;
	public DZ dz;
	public void drive(DZ dz){
		this.dz=dz;
		dz.run();
	}
}

class DZ{
    public String name ;
	
	public DZ(String name){
		this.name=name;
	}
	public void run(){
		System.out.print("上海大众在已120迈的速度在跑");
	}
}

//后期如果我有钱以后又买了一辆奔驰,我要换奔驰 ,不用多态的情况下代码如下:
public class test{
	public static void main(String[] args){		
		Benz benz=new Benz("奔驰车");
		people p =new people();
		p.drive(benz);
	}
}

class people{
	public String name;
	public DZ dz;
	public Benz benz;
	
	public void drive(DZ dz){
		this.dz=dz;
		dz.run();
	}
	
	public void drive(Benz benz){
		this.benz=benz;
		benz.run();
	}
}

class DZ{
    public String name ;
	
	public DZ(String name){
		this.name=name;
	}
	public void run(){
		System.out.print(name+"已在路上飞快的奔跑");
	}
}

class Benz{
	public String name;
	public Benz(String name){
		this.name=name;
	}
	public void run(){
		System.out.print(name+"已在路上飞快的奔跑");
	}
	
}


//这样是不是程序粘连性太强,不利于扩展,而且Java特性是对扩展开放,对修改关闭 我每换一辆车就需要改代码。
//那样代码修改太多,也不安全,用了多态以后,效果就很不一样了,妈妈在也不用担心我换车了,so easy!!
public class test{
	public static void main(String[] args){		
		Benz benz=new Benz("奔驰车");
		DZ dz=new DZ("大众车");
		BMW bmw=new BMW("宝马车");
		people p =new people();
		p.drive(benz);
		p.drive(dz);
		p.drive(bmw);
	}
}

class people{
	public String name;
	public Car car;
	
	
	public void drive(Car car){
		this.car=car;
		car.run();
	}
	
}

class Car{
	public String name;
	
	public Car(String name){
		this.name=name;
	}
	
	public void run(){
		System.out.println(name+"已在路上飞快的奔跑");
	}
}
class DZ extends Car{
   public DZ(String name){
		super(name);
	}
}

class Benz extends Car{
	public Benz(String name){
		super(name);
	}
}

class BMW extends Car{
	public BMW(String name){
		super(name);
	}
	
}

4.抽象

抽象的概念:通过特定的实例抽取出共同的特征以后形成的概念的过程,它强调主要特征和忽略次要特征。












  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值