Java相关特性

本文深入探讨面向对象编程的核心概念,包括类、对象、继承、接口与多态。解析对象内存布局,匿名对象特性,以及继承与多态在代码复用与扩展中的关键作用。并介绍了接口的概念及其在功能定义与实现分离中的应用。

一:面向对象,继承,类,接口,多态。

 1)类:使用类映射现实生活中的事物,其功能封装为方法,属性封装为成员变。

​​​​​对象的内存图

对象在内存中的位置:

对象由new关键字创建,如同数组,实体存在于堆内存中

任何事物均可以定义成类,创建对象,属于引用类型

对象的引用变量是一个普通变量。存储的值是该对象堆内存中的地址

匿名对象:

创建一个普通对象

Person p = new Person();

创建一个匿名对象

new Person();

匿名对象的特点

创建匿名对象直接使用,没有变量名。

new Person().eat()  //eat方法被一个没有名字的Person对象调用了。

 

匿名对象在没有指定其引用变量时,只能使用一次。

new Person().eat(); 创建一个匿名对象,调用eat方法

new Person().eat(); 想再次调用eat方法,重新创建了一个匿名对象

匿名对象可以作为方法接收的参数、方法返回值使用

2)继承:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。

继承的定义及使用格式

在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。

格式:

class 子类 extends 父类 {

父类内容,子类可以使用 (supper)

子类特有内容,可以写在子类中.

}

继承特点

Java支持单继承

Java支持多层继承

父类定义了继承树中共性内容,子类定义了该类个性内容。

3)多态:

多态是继封装、继承之后,面向对象的第三大特性。

如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。

多态体现:

多态体现为父类引用变量可以指向子类对象

多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态

在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法

可以调用一切父类的方法,子类特有的方法将不能调用

父类类型  变量名 = new 子类类型();

变量名.方法名();

多态的使用场景:

我们一般在以下场景当中使用多态:

成员变量赋值、局部变量赋值

方法传参(最常用最能体现出多态优点的应用)

返回返回值

多态的存在意义:

配合继承与方法重写提高了代码的复用性与扩展性,如果没有方法重写,则多态同样没有意义

 

多态本身是子类类型向父类类型向上转型的过程。

多态的转型分为向上转型与向下转型两种:

向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。

使用格式:

父类类型  变量名 = new 子类类型();

如:Person p = new Student();

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的!

使用格式:

子类类型 变量名 = (子类类型) 父类类型的变量;

如:Student stu = (Student) p;  //变量p 实际上指向Student对象

接口概念

接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。

接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计

请记住:一切事物均有功能,即一切事物均有接口。

定义格式:

public interface 接口名 {

抽象方法1;

抽象方法2;

抽象方法3;

}

使用interface代替了原来的class,其他步骤与定义类相同:

接口中的方法均为公共访问的抽象方法

接口中无法定义普通的成员变量

接口中成员的特点

接口中只能有常量。

接口中只能有抽象方法。

接口不可以创建对象。

子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。

Java支持一个类同时实现多个接口,或一个接口同时继承多个接口。

类可以在继承一个类的同时,实现多个接口。

接口与父类的功能可以重复,均代表要具备某种功能,并不冲突。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值