------- android培训、java培训、期待与您交流! ----------
一。表现:
父类或者接口的引用指向了或者接收了自己的子类对象。
二。前提:
1,类与类之间要有关系。继承,实现。
2,通常都会有覆盖。
三。好处:
预先定义的程序可以运行后期程序的内容。
增强了程序的扩展性。
四。弊端:
虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。
不能预先使用子类中定义的特有功能。
五。多态的注意事项:
在代码中。
对于成员函数:Fu f = new Zi(); f.method();
编译时期:看左边。
运行时期:看右边。
因为成员函数有一个覆盖操作。
毕姥爷和毕老师的故事。
对于非私有的实例变量,
静态变量,静态方法。
编译和运行都看左边。
老师要求记住结论。有空闲时间,就想想为什么?
六。转型。
子类对象被父类引用:子类对象在向上转型。
将指向子类对象的父类应用转换成子类类型引用:向下转型。
毕姥爷和毕老师的故事。
class 毕姥爷
{}
class 毕老师 extends 毕姥爷
{}
毕姥爷 ly = new 毕老师();//毕老师向上转型为了毕姥爷。向上转型
毕老师 ls = (毕老师)ly; //将代表毕老师对象的父类引用ly强制转换成了毕老师类型。向下转型。
七。应用
电脑使用。主板运行。
class MainBoard
{
public void run()
{
//主板运行;
}
public void usePCI(PCI p)//PCI p = new NetCard();
{
if(p!=null)
{
p.open();
p.close();
}
}
}
//为了提高主板功能的扩展性。
//定义了规则。让后期的出现的功能板块,只要覆盖该规则,就可以被这个主板使用。
interface PCI
{
void open();
void close();
}
class MainDemo
{
public static void main(String[] args)
{
MainBoard mb = new MainBoard();
mb.run();
mb.usePCI(null);
mb.usePCI(new NetCard());
}
}
class NetCard implements PCI
{
public void open(){}
public void close(){}
}
Object:是java中所有对象的直接或者间接的父类。
它里面的方法都所有对象都具备的。
常见方法:
boolean equals(Object obj):用于比较两个对象是否相同。
String toString(): 获取对象的字符串表现形式类名@哈希值
getClass().getName()+"@"+Integer.toHexString(hashCode());
Class getClass():获取正在运行的对象所属的字节码文件的对象。也就是说如果Demo d = new Demo();
d.getClass():获取的就是d执行的对象所属的字节码文件Demo.class对象。
通常在自定义对象时,因为对象中都有自己特有的描述,
所以都会建立对象自身的特有比较方法,或者字符串表现形式。
也就是说,会覆盖Object中的方法。
/*
Demo d1 = new Demo();
Demo d2 = new Demo();
d1.getClass() == d2.getClass();
*/
class Demo //extends Object
{
public String toString()
{
this.getClass().getName()+"#"+Integer.toHexString(this.hashCode());
}
}
class Fu
{
void show(){System.out.println("fu show");}
}
class Zi extends Fu
{
void function()
{
super.show();
//this.show();
}
void show(){System.out.println("zi show");}
}
相关推荐
- **健壮性**:Java有严格的类型检查和异常处理机制,能减少程序中的错误。 - **高效性**:虽然Java是解释型语言,但JVM通过即时编译(JIT)提升运行效率。 3. **JRE与JDK的区别**: JRE(Java Runtime ...
"黑马程序员入学Java知识——精华总结"这份文档很可能包含了Java编程的基础到进阶的知识点,旨在帮助初学者快速掌握Java的核心概念和技能。 1. **Java基础知识**:Java是一种面向对象的语言,它的基础包括语法、...
在本文中,我们将讨论Java语言中的一种重要概念 —— 多态(Polymorphism)。多态是面向对象编程(OOP)中的一个核心概念,它允许我们编写更加灵活和可扩展的代码。 一、多态的体现 多态的体现是指父类的引用指向...
1. **面向对象编程(OOP)**:Java是一门面向对象的语言,第8天的课程可能会重点讲解OOP的四大特性——封装、继承、多态和抽象。封装是隐藏对象的属性和实现细节,仅对外提供公共访问方式;继承允许一个类(子类)...
3. **面向对象编程**:深入讲解Java的核心特性——面向对象编程,包括类的定义、对象的创建与使用、封装、继承和多态等概念。 4. **数组和集合框架**:介绍数组的使用,以及ArrayList、LinkedList、HashSet、...
《2018-2019年黑马最新版Java程序员面试宝典+题库pdf》是一份集合了近年来Java编程领域重点知识和面试常见问题的综合资源。这份资料主要针对初级Java程序员,旨在帮助他们巩固基础知识,掌握面试技巧,以便在求职...
"初学"标签表明了它的目标受众,而"java"标签则明确指出了主题——Java编程语言。"清晰"和"高清"的标签可能指的是书籍内容的易读性和提供的PDF质量。 在本书中,读者将逐步了解Java语言的基础概念,包括但不限于: ...
以上只是Java面试题的一部分,涵盖了许多基础知识,对于Java程序员来说,深入理解这些概念和原理对于职业发展至关重要。其他面试题如集合、异常处理、IO/NIO、反射、序列化、注解、多线程并发、JVM优化、数据库技术...
《毕向东0801视频》是一套针对Java初学者的教育视频,主要讲解了Java编程语言中的一个重要概念——多态。多态是面向对象编程的三大特性之一,与封装和继承并列,是理解面向对象编程的关键。在这个系列的视频中,毕...
java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB“ 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc ...黑马程序员入学Java精华总结.pdf
java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc ...黑马程序员入学Java精华总结.pdf
java面试笔试题库java学习比较开发教程互联网公司面试资料大全合集: 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc ...黑马程序员入学Java精华总结.pdf
1. **Java基础**:介绍Java的历史、特点、开发环境搭建(如JDK安装与配置)以及第一个Java程序——"Hello, World!"的编写。 2. **语法基础**:包括数据类型、变量、运算符、流程控制(如条件语句、循环语句)、数组...
本教程——"java视频教程_黑马Java零基础辅导班[第二期]01天PPT",正是针对这部分人群设计的,旨在帮助零基础的学员快速理解和上手Java。 课程内容以第一天的"基础知识"为主题,由讲师冯佳深入浅出地讲解Java的核心...
【标题】"毕向东java0604"指的是由知名IT教育机构黑马程序员的讲师毕向东教授的一堂关于Java编程的课程,这节课的主题聚焦在第6天的第4部分内容。在Java学习的过程中,第6天通常是面向对象编程(Object-Oriented ...
《Java编程之旅:黑马程序员零基础辅导班课程详解》 在IT行业中,Java语言以其强大的跨平台能力和丰富的库支持,始终占据着重要的地位。对于初学者来说,掌握Java开发技术是进入这个领域的关键一步。本教程针对零...
1. 黑马程序员_毕向东_Java基础视频教程第07天-05-面向对象(子父类中函数的特点-覆盖).avi:这个文件讲述了子类如何重写(覆盖)父类的方法,这是继承的一个关键特性。在Java中,子类可以提供自己的实现,以扩展或...
毕业设计阿里运动网,Java 适合用于Java提升”说明这个培训课程可能包含了一个毕业设计项目——阿里运动网的开发过程。通过这样的实战项目,学员可以学习到如何在实际环境中应用Java语言,提升自己的编程技能。同时...