Java的封装继承和多态
封装
定义:属性私有private;get/set
目的
提高程序的安全性,保护数据
隐藏代码的实现细节
统一接口
提高系统的可维护性
代码
public class Student {
//名字
private String name;
//学号
private int id;
//性别
private char sex;
//年龄
private int age;
//要提供一些可以操作这些属性的方法
//get 获得这个数据
public String getName(){
return name;
}
//set 给这个属性赋值
public void setName(String name){
this.name = name;
}
//Alt + Insert :插入get/set
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>=120||age<0){
this.age = 0;
}else{
this.age = age;
}
}
}
继承
关键词:extends
代码
//在Java中,所有的类,都默认直接或间接继承object
//Person 基类 父类
public class Person {
//public :公共的 公开的
//protected:受保护的
//default:默认的
//private :私有的
private int money = 10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
//子类继承了父类,就会拥有父类的全部方法
//extends:扩展.子类是父类的扩展
//Student是子类,Person是父类
public class Student extends Person{
public void sayHi(){
System.out.println("我是个学生");
}
}
多态
定义:同一个方法根据发送对象的不同而采取多种不同的行为方式。
多态的注意事项:
多态是方法的多态,属性没有多态。
方法重写,父类引用指向子类对象。
举例
public class Application {
//一个项目应该只有一个main方法:main方法是程序运行的主入口
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Student();
Person p3 = new Teacher();
p1.sayHi();//我是人类
p2.sayHi();//我是学生
p3.sayHi();//我是老师
}
}
//父类
public class Person {
public void sayHi(){
System.out.println("我是人类");
}
}
//子类:Student
public class Student extends Person{
//重写父类中的say()方法
@Override
public void sayHi() {
System.out.println("我是学生");
}
}
//子类:Teacher
public class Teacher extends Person{
@Override
public void sayHi() {
System.out.println("我是老师");
}
}
Java的封装继承和多态的更多相关文章
- 【JAVA零基础入门系列】Day13 Java类的继承与多态
继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...
- day33 序列类型,绑定方法,类方法,静态方法,封装继承和多态
Python之路,Day20 = 序列类型,绑定方法,类方法,静态方法,封装继承和多态 序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主要 ...
- java中的继承 和多态。
package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...
- java类的继承,多态,抽象类与接口
知识点梳理: 1,怎样定义自己的类. MyStarFrame,MyStarPanel 类中定义: (1)属性(数据),变量. (2)方法(函数),行为. (3)构造方法(特征,作用,何时被调用 ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- Java学习笔记--继承和多态(中)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- 2017.10.10 java中的继承与多态(重载与重写的区别)
1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...
- objective-c自学总结(三)---面向对象的封装,继承与多态
面向对象的三大特性 封装 继承 多态 1.封装: 隐藏属性,方法或实现细节的过程称为封装 信息隐藏,隐藏对象的实现细节,不允许用户看到 将东西包装在一 然后以新的完整形式呈现出来 例如,两种或多种化学 ...
- Java:[面向对象:继承,多态]
本文内容: 继承 多态 首发时期:2018-03-23 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类( ...
随机推荐
- codeforces622E Ants in Leaves (dfs)
Description Tree is a connected graph without cycles. A leaf of a tree is any vertex connected with ...
- bnuoj24252 Divide
Alice and Bob has found a island of treasure in byteland! They find N kinds of treasures on the isla ...
- Codeforces Round #521 (Div. 3) E. Thematic Contests (离散化,二分)
题意:有\(n\)个话题,每次都必须选取不同的话题,且话题数必须是上次的两倍,第一次的话题数可以任意,问最多能选取多少话题数. 题解:我们首先用桶来记录不同话题的数量,因为只要求话题的数量,与话题是多 ...
- 同时拿到BATJMD的Offer是怎样的一种体验?
写在前面 又到了收割Offer的季节,你准备好了吗?曾经的我,横扫各个大厂的Offer.还是那句话:进大厂临时抱佛脚是肯定不行的,一定要注重平时的总结和积累,多思考,多积累,多总结,多复盘,将工作经历 ...
- Ansible主机清单Inventory文件hosts
Ansible主机清单Inventory文件hosts 发表于 2017-05-14 | 分类于 运维相关 , Ansible | | 阅读次数 4638 | 字数统计 1,442 | 阅读时长预计 ...
- linux无需root挂载iso镜像文件
引言 起初,我在针对deepin制作一款appimage安装工具,想要其实现的功能就是自动获取图标,只需要输入软件名称和分类即可,当然以后也会寻找方案省去手动输入的麻烦. 后来我发现一个有趣的问题 o ...
- hdu 6242 Geometry Problem
Geometry Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Other ...
- 记一次FreeRTOS错误配置导致无法进入临界区
最近项目用到FreeRTOS,在实际调试中发现我自己的一段代码本来好用的(在无RTOS的情况下),但是当我在带RTOS的情况下把代码放到一个单独的任务中运行时我发现本来好用的代码莫名其妙的出现问题,有 ...
- how to input special symbol in macOS
how to input special symbol in macOS 如何在 macOS 中输入特殊符号 1024 ≈ 1000 2^10 == 1024 约等于 1000, 方便用来表示 Opt ...
- Tumult Hype
Tumult Hype hype generated script https://tumult.com/hype/documentation/ HTML5 animation editor http ...