java类和对象:封装、继承和多态

简介: java类和对象:封装、继承和多态

类成员的访问修饰符 :



image.png

变量:



1.成员变量会有初值:参考数组的初值(整形0,浮点型0.0,布尔类型false,char类型是空格,引用类型是null)


2.局部变量没有初值


方法重载



同一个类中、方法名相同、参数个数或类型不同、与返回值、访问修饰符无关


继承



是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类


继承条件下构造方法的调用规则:



1.子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法,系统默认调用父类的无参构造方法


2.子类构造方法通过super显式调用父类的有参构造方法,执行父类相应构造方法,而不执行父类无参构造方法


3.子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则


方法重写:



1.方法名相同


2.参数列表相同


3.返回值类型相同或者是其子类


4.访问权限不能严于父类


5.父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法


6.子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法


7.父类的私有方法不能被子类覆盖


8.不能抛出比父类方法更多的异常


方法重写与方法重载区别:



image.png

抽象方法:



1.抽象方法没有方法体


2.抽象方法必须在抽象类里


3.抽象方法必须在子类中被实现,除非子类是抽象类


静态代码块



1.某个类当中固有的代码块


2.一个类当中可以有多个静态代码块,按编写顺序执行


3.静态代码块,只会在类被****加载****的情况下执行一次(声明例外)


4.类加载机制:只要执行了和这个类有关的****调用****,那么该类必然已经被加载


抽象类:



1.在抽象类当中,可以有普通方法,也可以有抽象方法;但是,抽象方法只能在抽象类当中声明;


2.抽象类除了多了抽象方法和不能被实例化之外,和普通类一致


3.抽象方法的语法,在修饰符和返回值之间,添加关键字abstract,抽象方法没有方法体,即不需要立即实现


4.没有抽象的属性


5.抽象类,不可被实例化


6.抽象方法必须在子类当中被实现,除非子类也是抽象类,也就是说,在抽象的类的子类当中,只要有一个子类实现了抽象方法,其后代将不必一定实现该抽象方法


7.对于一个子类来说,其父类当中所有的抽象方法,如果没有被实现过,那么将都需要去实现这些抽象方法


向上转型:父类声明指向子类对象



1.向上转型,父类声明,只能调用子类重写的方法,或者本身实现没有被子类重写的方法


2.多个子类实现同一个****重写****的方法,优先调用距离实现类最近的那个


3.向上转型,子类特有的方法,无法被调用


4.向上转型属于自动类型转换


向下转型:强制将父类型变为子类型



1.首先要向上转型过了,才能向下转型


2.向下转型之前,一定要判断实例的类型,要强转为那个引用,就判断是否是这个引用


3.向下转型属于强制类型转换


接口:



1.语法:使用interface来声明


2.方法:所有的方法都是抽象方法,不存在普通方法


3.抽象方法,只能使用共有的和默认的两种修饰符;因为,如果是私有的,那么除了本类以外不可见,如果是受保护的,要继承可见,那么问题就是****是否可见****。


4.接口当中,所有的属性都是静态常量


5.接口可以多实现,用逗号隔开,但是继承只能单根继承


6.接口同样不可以被实例化


7.接口和接口之间是多继承


8.所有接口当中的抽象方法,都必须被实现类实现


9.instanceof判断是否是某个类型,看实现类,而不是看声明的类型


10.接口没有构造,抽象类有构造


目录
相关文章
|
9小时前
|
Java 编译器 ice
【Java开发指南 | 第二十六篇】Java多态
【Java开发指南 | 第二十六篇】Java多态
11 1
|
9小时前
|
Java ice
【Java开发指南 | 第二十四篇】Java继承
【Java开发指南 | 第二十四篇】Java继承
6 0
|
9小时前
|
Java ice
【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口
【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口
10 4
|
9小时前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
9 4
|
9小时前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
19 4
|
9小时前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
9小时前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
13 0
|
9小时前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
19 3
|
9小时前
|
Java 程序员 编译器
Java继承与多态知识点详解
本文主要讲解的是Java中继承与多态的知识点
|
10小时前
|
Java 编译器
Java基础知识:什么是封装、继承和多态?
Java基础知识:什么是封装、继承和多态?
78 0