首页 > 编程语言 >java基础二-面向对象的三大特性

java基础二-面向对象的三大特性

时间:2023-03-11 17:36:39浏览次数:33  
标签:java 继承 子类 多态 面向对象 父类 方法 三大 属性

面向对象的是三大特性

封装

一.概念

将类的信息隐藏在类的内部,不允许外部程序直接访问,通过类提供的方法实现对隐藏信息的操作和访问

封装的两大原则

  • 尽可能多的东西藏起来对外部提供一个便捷的接口
  • 所有属性藏起来
二.封装的步骤

1.定义私有属性

2.生成getter()/setter()方法封装 右键-generate getter/setter 获取到属性 赋值属性

3.创建一个有参构造和无参构造  右键 generate Constructor

4.生成toString方法 右键 generate toString

类的访问修饰符

 

 

 static修饰符
  • 成员方法
    •   静态方法,可以直接通过类名访问
  • 代码块
    •   静态代码块,当java虚拟机加载类时,自动执行该代码块
  • 成员变量
    •  静态变量,可以通过类名访问

 

 结果:静态代码块 10

继承  extends

继承就是子类继承父类的特征和行为,是的子类对象(实例)具有父类德实例域和方法,或者子类从父类集成方法,是的子类具有父类相同的行为.

继承父类方法并调用

 

 类继承的特点

1. java只支持单继承

2.支持多层继承(继承体)

3.子类可以使用父类,父类不允许使用子类

继承的注意事项

1.只能继承public和protected修饰的属性和方法(不管子类父类是否在同一个包里)

2.子类不能继承父类的构造方法

3.子类可以拥有自己的属性和方法,子类可以对父类进行扩展

this super的区别和应用

this:代表当前引用

super:代表父类的引用

 

 输出:10 30 20

继承构造运行机制

子类中所有构造方法都会默认访问父类的构造方法

子类会继承父类的数据,可能子类的饿数据,所以在初始化子类前还会初始化父类

 

 输出:Father的无参构造方法 son的无参构造方法

 多态

多态是同一个行为具有不同表现形式或形态的能力

非静态属性的重写

三个特点

1. 要有继承

2.要有重写

3.父类引用值项子类的对象 Animal a = new Dog(); 父类引用子类对象  ##成员变量没有重写的概念

 

 

输出:啃骨头

多态成员的特点

1. 静态属性 没有多态

2.非静态属性 没有多态  ====> 不涉及重写

3.静态方法 没有多态

静态方法的白哦用是用变量类型的类名去调用 (变量类型 变量 = new 对象)  

 向上转型

1. <父类型><引用变量名> = new <子类型>();

2.此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

3.此时通过父类引用变量无法调用子类特有的方法

向下转型

1. <父类型><引用变量名> = (<子类型>)<父类型的引用变量>;

2.在向下转型的过程中,如果没有转化为真实子类类型,会出现类型转换异常

多态的优缺点

优点:提高了代码的扩展性和可维护性

缺点:无法直接访问子类特有成员

标签:java,继承,子类,多态,面向对象,父类,方法,三大,属性
From: https://www.cnblogs.com/lisenMiller/p/17206386.html

相关文章

  • 01-面试必会-JAVA基础篇
    1.Final有什么用?被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,......
  • Java并发基础知识
    进程与线程进程,程序的一次执行过程,系统运行程序的基本单位。启动main函数,即启动JVM的一个进程,mian函数为其主线程。同类多个线程共享进程的堆和方法区资源,切换工作负担......
  • Java内存模型:Java解决可见性和有序性问题的方案
    Java内存模型并发场景下,可见性/原子性/有序性是并发编程Bug源头,而Java内存模型解决了可见性和有序性问题。Java内存模型定义可见性问题原因是缓存,有序性问题原因是编译......
  • Java基础之并发——CAS操作
    CAS操作的内存地址V,旧的预期值A,即将要更新的目标值B的获取顺序是:首先,读取内存地址V的值;然后,读取旧的预期值A的值;最后,读取即将要更新的目标值B的值。CAS操作是原子性的,因......
  • Java流程控制
    Scanner对象Java给我们提供了这样一个工具类,我们可以获取用户的输入。我们可以通过Scanner类来获取用户的输入Scanners=newScanner(System.in);通过Scanner类的......
  • Java运行程序占用CPU100%故障排查
          通过进程查线程,查看线程是否正常                 ......
  • 使用AidLux在安卓手机上搭建一个java服务器
    背景我有一部旧手机,功能完好,后盖碎了,卖不了几个钱,但是12G的内存512G的空间让我舍不得丢,作为一个程序员,平常也会写一点demo玩玩,就想着拿这部旧手机当作一台服务器使用。Ai......
  • JavaDoc文档注释
    JavaDoc文档注释/***@authorhuangjilin*@version1.0*@since1.8*///类注释publicclassDoc{Stringname;/**......
  • Java基础 - 基本数据类型,基本数据类型之间的运算规则,引用数据类型
    基本数据类型:1.整数类型 类型:byte,short,int,long字节:byte1字节,short2字节,int4字节,long8字节容量:byte-128~127,short-3万~3万左右,-20亿~20亿左右,long特别大默认字......
  • Java基础之并发——线程的生命周期和状态
    Java线程在运行的生命周期中的指定时刻只可能处于下面6种不同状态的其中一个状态:NEW:初始状态,线程被创建出来但没有被调用start()。RUNNABLE:运行状态,线程被调用......