JAVA面对对象的三大特性

1.封装
Java中的封装是指一个类把自己内部的实现细节进行隐藏,只对外公布需要公开的属性和方法。在java中使用private、defalu(默认),protected、public四种访问权限修饰符对外部对象访问该对象的属性和方法进行限制。通过把访问权限修饰符改为(private)对属性和方法进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,它们通过setter和getter方法来对属性的值进行设定和获取。
下面是封装的例子。

		public class Person {
				private int id;
				private String name;
				private Person person;
				
				public int getId() {
					return id;
				}
				 
				public String getName() {
					return name;
				}
				 
				public Person getPerson() {
					return person;
				}
				 
				public void setId(int id) {
					this.id = id;
				}
				 
				public void setName(String name) {
					this.name = name;
				}
				 
				 public void setPerson(Person person) {
					 this.person = person;
				 }
    }

在Person类中,定义了三个属性,分别为id name person,它们的访问权限修饰符都是private私有的,通过setter和getter方法对这些变量进行赋值以及取值。封装的意义就是增强类的信息隐藏,提高安全性。封装的主要作用也是对外部隐藏具体的实现细节,增加了程序的安全性。
2.继承
Java中的继承是指在一个现有类(父类)的基础上在构建一个新类(子类),子类可以拥有父类的属性以及方法(但是不一定能访问或调用,例如父类中private私有的成员变量以及方法不能访问和调用)。继承的作用就是能提高代码的复用性。子类拥有父类中的一切(拥有不一定能使用)。Java通过extends关键字来实现继承,父类中通过private定义的变量和方法不会被继承,不能在子类中直接操作父类通过private定义的变量以及方法。
一个类,只能继承一个父类,一个类,可以有多个子类。
构造器,没有访问权限修饰符的,静态成员不能被继承。
父类:

public class Person {
	public void speak() {
		System.out.println("我会说话");
	}
	
	public void run() {
		System.out.println("我会跑");
	}
	}

子类:
public class Student extends Person {

	public void say() {
	super.speak();
}

	public void run() {
	super.run();
}

	public static void main(String[] args) {
	Student S1 = new Student();
	S1.speak();
	S1.run();
}
}

继承的好处是实现代码的复用以及扩展,子类通过继承父类的代码复用,可以不用再定义父类中已经定义的属性和方法,方法上直接对父类的方法进行重写也实现了扩展。

3.多态
定义:Java中多态性指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(同一种方法,有不同的变种)

向上造型(AirCraft a = new Bomber();) :
1.可以把一个父类(或接口)的引用指向一个子类的实例,称为向上造型,是多态的典型表现。
2.向上造型只能访问父类(或接口)的方法,不能使用子类的其他方法。
3.调用时真正执行的是子类(或实现类)的方法。

向下造型(又称强制转换Bomber b=(Bomber)a):
1.把上层类型转换为下层类型,需要通过(目标类型)方式来实现。
2.向下造型往往是为了使用下层类型的方法或属性。
3.向下造型不总是安全的,可能会抛出ClassCastException造型异常。
instanceof操作符
判断左边的实例是否是右边的类的实例

			AirCraft a = new Missile();
				if(a instanceof Bomber){
					Bomber b=(Bomber)a;
				}

多态参数:
当方法的参数为上层类型时,可以传入下层类型。

编译期类型和运行期类型:
1.编译期指的是编译时,看左边声明的类型。
2.运行期指的是运行时,看右边实际的类型。
3.对于属性还有静态属性和方法:看准了左边。
4.对于方法:编译看左边,运行看右边。

多态性的好处:
1.可替换性:多态对已存在的代码具有可替代性
2.可扩充性:增加新的子类不影响已存在类的多态性,继承性,以及其它特性的运行和操作,实际上新加子类共容易获得多态性功能
3.接口性:多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的
4.灵活性:它在应用中体现了灵活多样的操作,提高了使用效率
5.简化性:多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值