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))来判断具体哪个类,调用哪个方法

 

相关文章
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
50 4
|
11天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
26 2
|
Java
java学习第七天笔记-方法150-封装2方法使用
java学习第七天笔记-方法150-封装2方法使用
68 0
java学习第七天笔记-方法150-封装2方法使用
|
Java
java学习第六天笔记-方法129-综合联系-飞机票方法封装
java学习第六天笔记-方法129-综合联系-飞机票方法封装
59 0
java学习第六天笔记-方法129-综合联系-飞机票方法封装
|
Java
java学习第六天笔记-方法128-综合联系-飞机票方法封装
java学习第六天笔记-方法128-综合联系-飞机票方法封装
78 0
java学习第六天笔记-方法128-综合联系-飞机票方法封装
|
Java
java学习第七天笔记-方法149-封装1
java学习第七天笔记-方法149-封装1
54 0
java学习第七天笔记-方法149-封装1
|
Java
java学习第七天笔记-方法151-封装3
java学习第七天笔记-方法151-封装3
71 0
java学习第七天笔记-方法151-封装3
|
Java
java学习第七天笔记-方法152-封装4-代码实现
java学习第七天笔记-方法152-封装4-代码实现
75 0
java学习第七天笔记-方法152-封装4-代码实现