Java是一门面向对象编程语言。

面向对象的特征是什么?请举例说明

面向对象主要有四大特征:抽象,封装,继承,多态

1、抽象

1.1 抽象的定义

抽象是指在众多的事物中抽取出共同特征(把一类事物与其他类的事物区分开来的特征叫共同特征)。

例如西瓜、香蕉、苹果等,它们都是水果。水果就是他们的共同特性。

再比如,对于挖掘机和西瓜,很难想象他们有什么共同特征,但是如果从买卖的角度上来看的话,他们都是商品,他们都有价格。

所以当你在抽象时,相同与不相同取决定于你从什么角度上来抽象。而抽象的角度又取决于你分析问题的目的是什么。

1.2 抽象的分类

抽象分为数据抽象和行为抽象两方面

数据抽象是指对事物的属性进行抽象。

例如鸽子、麻雀,他们都是鸟,他们都有脚,都有翅膀,都有羽毛,这些都是鸟的属性。

行为抽象是指对事物的行为进行抽象。

同样以鸽子、麻雀举例,他们是鸟,都会飞都会跳,这些都是鸟的行为。

2、封装

2.1 封装的定义

封装指的是把对象的属性和操作组合起来成一个独立的整体,尽可能隐藏对象内部的实现细节(实际上是将类的数据隐藏,目的是控制外部对类内部数据的访问程度及修改),只能通过已定义的接口访问对象内部的数据。

举例说明:

public class Man {

private String name;

private Woman wife;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

// 男人的老婆不能让别人随便访问
// public Woman getWife() {
// return wife;
// }

public void setWife(Woman wife) {
this.wife = wife;
}
}

2.2 封装的优点

1、代码安全性及复用性得到大大的提高。

2.、将细节封装,便于自己修改对象内部代码,维护性大大提升。

3.、便于调用者使用,简化了外部调用,扩展性得到提升。

3、继承

3.1 继承的定义

继承指的是如果多个类(子类)具有相同的属性和行为,那么我们将这些类共性的内容抽取出来定义父类,以后如果再有相似的类时只要继承这个父类即可。

3.2 Java中继承的格式

public class Son extends Parent{

// 这里父类Parent的非私属性及方法均会继承过来,可以直接使用
// 同时我们也可以在父类Parent的基础上扩展属于自己的方法

}
public class Person {

// 父类的成员变量
private String name;

// 父类的方法
public void sleep(){
System.out.println("睡觉");
}

}

class Chinese extends Person{

public void eat(){
System.out.println("吃米饭");
}

}

3.3 继承的一些注意事项

1、Java每个类只能有一个父类,不支持多继承。

2、Java中父类可以有父类。

3、Java中只有Object类没有父类。

4、Java中所有使用父类类型的地方,均可以传入其子类对象。

5、Java中的子类可以访问其父类的非私有化成员变量

3.4 继承的优缺点

优点:易实现,易扩展。

缺点:父类向子类暴露了自己的实现细节,打破了封装,父类修改之后子类也要同时修改,耦合性高。

4、多态

4.1 多态的定义

多态指的是一个事物的多种形态。

举个例子:学生是人的一种,张三既是学生也是人,即出现两种形态。

用Java描述:Student类继承Person类,那么一个Student对象既属于Student类又属于Person类。

4.2 多态中成员特点

1、多态成员变量:编译看左边

public class Test {
public static void main(String[] args) {
Parent parent = new Son();
// 结果得到的值是父类Parent中的值
System.out.println(parent.num);
}
}

class Parent {
// 父类的成员变量
public Integer num;
}

class Son extends Parent {

}

2、多态成员方法:运行看右边

public class Test {

public static void main(String[] args) {
Parent parent = new Son();
// 结果执行的是子类的show方法
parent.show();
}

}

class Parent {
// 父类的方法
public void show(){
System.out.println("看书");
}
}

class Son extends Parent {
public void show(){
System.out.println("看电视");
}
}

4.3 多态优点

1、可替换性: 使代码具有可替换性。

2、可扩充性: 使代码具有可扩充性。

3、接口性: 父类向子类提供了一个共同接口,让子类实现。

4、灵活性: 使代码灵活多样,提高代码了使用效率。

5、简化性: 大大简化了代码编写和修改过程。

当前位置:Java教程网 »
本文地址:http://www.javajcw.com/1.html
喜欢 or
默认图片
发表我的评论
取消评论