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 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类( ...
随机推荐
- hdu 13394 Minimum Inversion Number 线段树
题意: 首先给你一个长度为n的序列v,你需要首先找出来逆序对(i<j && v[i]>v[j]) 然后把这个序列的最后一个元素放在第一个位置上,其他元素都向后移动一位. 一 ...
- A. Little Pony and Expected Maximum
Twilight Sparkle was playing Ludo with her friends Rainbow Dash, Apple Jack and Flutter Shy. But she ...
- Codeforces Round #579 (Div. 3) D2. Remove the Substring (hard version) (思维,贪心)
题意:给你一个模式串\(t\),现在要在主串\(s\)中删除多个子串,使得得到的\(s\)的子序列依然包含\(t\),问能删除的最长子串长度. 题解:首先,我们不难想到,我们可以选择\(s\)头部到最 ...
- 通过修改etcd来设置或修改节点flannel子网信息
在首次启动flannel服务的时候可以手动指定subnet.env文件,配置所在节点的flannel子网网段,如果不指定配置文件,flannel将自动分配一个子网网段并生成配置文件 /var/run/ ...
- google 人机身份验证
google 人机身份验证 Are you a robot? Introducing "No CAPTCHA reCAPTCHA" https://googleonlinesecu ...
- Swift Playground All In One
Swift Playground All In One Swift 5.3 Playgrounds in Xcode Xcode 11.5 https://developer.apple.com/vi ...
- nest.js tutorials
nest.js tutorials A progressive Node.js framework https://docs.nestjs.com//firststeps nest.js CLI ht ...
- 微信公众号 & 付费阅读
微信公众号 & 付费阅读 付费功能 付费阅读 付费功能使用说明 1.付费功能介绍 开通了付费功能的公众号,运营者可以在编辑时对原创文章的部分或全部内容设置收费.对于付费图文,用户未付费前可免费 ...
- Azure 计费 & 成本管理 & 取消 Azure 订阅
Azure 计费 & 成本管理 & 取消 Azure 订阅 https://docs.microsoft.com/zh-cn/azure/cost-management-billing ...
- css & multi line words & ellipsis
css & multi line words & ellipsis bug .news-card-content-title { width: 100%; height: 0.8rem ...