JAVA类和对象(封装,继承,多态)(二)

简介: JAVA类和对象(封装,继承,多态)

import是用来导入其他包中的类

在这里tect是一个包,bao又是一个包,导入方式是

import +包名+类名。

引用权限

private  同一个包同一个类才可以用

default(默认不写)同包就行

protect    不同包的子类可以用

public。   随意用

  如果两个文件夹有同一个名字的文件这时候导入两个包后

  如import java.util.*;

  import java.sql.*;只可以指定着写如java.util.Date date=new java.uti.Date();

   包名最好小写

继承和多态

继承,如果两个类有相同的共性则抽取共性形成父类,具体细致的类叫子类,如同一个动物类,动物具有吃,玩等特性,而具体到猫和狗的时候,吃就要变为吃狗粮或者吃猫粮,继承的目的是进行代码的复用来使代码更简洁,而调用的super是为了初始化父类的内部成员 ,子类同时可以方法重载(和父类方法用一个名字)

eat方法的复用

多态的体现:在代码运行,当传递不同类对象会调用对应类中的方法。

多态(条件)

1.必须在继承体系下面

2.子类必须对父类方法进行重写

3.通过父类的引用调用重写的方式。

注意

      1.被private修饰的方法不能重写。

      2.被static修饰的方法不能重写。

      3.子类的访问限定符一定要大于父类的访问修饰符。

      4.被final修饰的方法不可被重写。

      5.构造方法不可以重写。

调用方式是super.父类成员名(super是在子类的构造函数里面调用父类的构造函数,因为子类构造函数中默认存在super()表示父类的其他含参构造,子类必须调用父类的构造函数,不管无参还是含参,选一个即可,子类不能出现父类名字的构造的方法)

super和this都是java关键字,都只能在非静态中使用,不可同时存在。

(注意 super必须第一行,this()和super不可同时连用,)

子类实例化一个对象之后,父类来引用这个对象(小范围到大范围的叫做向上转型),

此时父类MyInteger只可调用自己的方法而不能调用子类的方法,当他调用自己的方法时,我们会看到结果还是子类的方法呈现,而这就叫做运行时绑定,因为此时发生了重写

静态绑定就是根据用户传递的实参类型而确定具体调用哪个方法(代表方法重载)。

向上转型的使用时机,下图是传递参数时,我们正常应该是使用夫类对象,但是我们传递了他的子类a,来发生向上转型

3.返回值

返回的子类,可以用父类接收,接收然后,可以调用父类的方法,但他还是有运行时绑定,也就是输出是子类的eat。

 

向下转型

下图就展示了向下转型,将父类转化为子类,(不是很安全,使用较少)

如果这个时候,向下转型就不可以了,因为转型,你所实例化的对象,和你强制转换的对象不同。

那么解决向下转型的方法就是这个,判断他的实例化对象什么东西,如果是mu就调用强制类型转化成mu,如果是ma就强制类型转换成ma。判断是用if(父类对象名字  instanceof 另一个类(ma))来判断具体哪个类,调用哪个方法

 

相关文章
|
27天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
44 8
|
1月前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
27天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
77 1
|
27天前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
60 1
|
1月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
63 17
|
1月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
116 4
|
1月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
60 2
|
1月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
52 4
|
1月前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
44 5
下一篇
DataWorks