网站首页 > java教程 正文
JAVA面向对象的三个基本特征是:
- 封装(Encapsulation):封装是指将数据和方法(行为)组合在一起,形成一个独立的单元。这个单元对外部世界隐藏了内部实现细节,只对外部提供了访问接口。封装可以保护数据的安全性,提高代码的可维护性和可重用性。
- 继承(Inheritance):继承是指通过扩展已有类的属性和方法来创建新类的过程。新类可以重用已有类的代码,同时也可以添加自己的代码。继承可以提高代码的复用性和扩展性。
- 多态(Polymorphism):多态是指同一个方法在不同情况下的不同表现形式。在JAVA中,多态可以通过方法重载和方法重写来实现。多态可以提高代码的灵活性和扩展性。
以下是一个简单的JAVA面向对象的例子:
假设我们要创建一个“动物”类,这个类有两个属性:名称和年龄,以及一个方法:发出声音。我们可以用JAVA面向对象的三个基本特征来实现这个类:
- 封装:我们可以将“名称”和“年龄”属性私有化(private),并通过公有的(public)getter和setter方法来访问和修改这些属性。同时,我们可以将“发出声音”方法公有化,让外部可以调用这个方法。
- 继承:我们可以创建一个“猫”类和一个“狗”类,这两个类都继承自“动物”类。这样,“猫”和“狗”类就可以重用“动物”类的属性和方法,同时也可以添加自己的属性和方法。
- 多态:我们可以在“动物”类中定义一个名为“发出声音”的方法,然后在“猫”类和“狗”类中分别重写(override)这个方法,使得“猫”和“狗”发出的声音不同。这样,当我们调用“猫”和“狗”的“发出声音”方法时,它们的行为就表现为多态性。
一个简单的JAVA面向对象的代码例子,实现了上面所述的“动物”类和“猫”类:
// Animal类
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void makeSound() {
System.out.println("Animal is making sound...");
}
}
// Cat类
public class Cat extends Animal {
public Cat(String name, int age) {
super(name, age);
}
@Override
public void makeSound() {
System.out.println("Cat is meowing...");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Animal animal = new Animal("Animal", 3);
animal.makeSound(); // 输出:Animal is making sound...
Cat cat = new Cat("Tom", 1);
cat.makeSound(); // 输出:Cat is meowing...
}
}
在上面的代码中,我们定义了一个“Animal”类,这个类有“name”和“age”两个私有属性,以及“makeSound”方法。然后我们又定义了一个“Cat”类,这个类继承自“Animal”类,并重写了“makeSound”方法。在测试类中,我们创建了一个“Animal”对象和一个“Cat”对象,分别调用它们的“makeSound”方法,输出不同的结果。这就体现了JAVA面向对象的三个基本特征:封装、继承和多态。
- 上一篇: 面向对象2 - 三大特性(面向对象三大特征六大原则)
- 下一篇: Java面向对象有哪些特征,如何应用
猜你喜欢
- 2024-11-11 Java面向对象有哪些特征,如何应用
- 2024-11-11 面向对象2 - 三大特性(面向对象三大特征六大原则)
- 2024-11-11 「Java 面向对象知识整理」面向对象三大特征
你 发表评论:
欢迎- 06-15Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 06-15推荐一款超棒的SpringCloud 脚手架项目
- 06-15IDEA将项目打包成jar包(idea打包普通java项目)
- 06-15Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 06-15记录Dockerfile将jar包构建成部署所需的镜像
- 06-15项目基础部署汇总八---linux下xxl-job安装
- 06-15Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 06-15终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 最近发表
-
- Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 推荐一款超棒的SpringCloud 脚手架项目
- IDEA将项目打包成jar包(idea打包普通java项目)
- Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 记录Dockerfile将jar包构建成部署所需的镜像
- 项目基础部署汇总八---linux下xxl-job安装
- Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 如何将本地JAR文件添加到Maven项目中
- Java 类隔离应用:多 Jar 包支持(java接口隔离原则)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)