JAVA程序设计 - 图文(5)
例:class Dog estends Animal{ …… }
14.方法的重写
1.什么是方法的重写: 如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法是会优先调用子类的方法 2.语法规则: a.返回值类型 b.方法名
c.参数类型及个数都要与父类继承的方法相同,才叫方法的重写 3.继承的初始化顺序 1).初始化父类再初始化子类 2).先执行初始化对象中属性,再执行构造方法中的初始化 4.final关键字: 使用final关键字做标识有“最终的”含义 final可以修饰类,方法,属性和变量 final修饰类,则该类不允许被继承 final修饰方法,则该方法不允许被覆盖(重写) final修饰属性: 则该类的属性不会进行意识的初始化(类的初始化属性必须有值) 或在构造方法中赋值(但只能选其一) final修饰变量,则该变量的值只能赋一次值,即变为常量 5.super关键字 在对象的内部使用,可以代表父类对象 1).访问父类的属性 super.age 2).访问父类的方法 super.eat() 3).super的应用
子类的构造的过程中必须调用其父类的构造方法 如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类的构造方法 如果显示的调用构造方法,必须在子类的构造方法的第一行。 如果子类构造方法中既没有显示调用父类的构造方法,而父类有没有无参的构造方法,则编译出错。
14.Object 类
Object 类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个就默认继承Object类。
Object 类中的方法,适合所有子类。 1).toString()方法 在Object类里面定义toSting()方法的时候返回的对象的哈希code吗(对象地址字符串) 可以通过toString()方法表示出对象的属性 没有重写 toString 方法的情况下直接用 print 打印对象,输出的是对象的地址
2).equals()方法
比较的是对象的应用是否指向同一内存地址。
一般情况下比较两个对象是比较他的值是否一致,所以要进行重写。
14.多态 (继承是多态的实现基础) 在实现多态的时候两个类一定要有继承关系
对象的多种形态 1.引用多态 父类的引用可以指向本类的对象 父类的引用可以指向子类的对象 2.方法多态 创建本类对象时,调用的方法为本类方法 创建子类对象是,调用的方法为子类重写的方法或者继承的方法
3.实例;
//首先创建一个父类Animal public class Animal {
public void eat(){//方法
System.out.println(\动物具有吃的能力\); } }
//创建一个Animal的子类并继承Animal
public class Dog extends Animal {
public void eat(){//在子类中重写eat()方法 System.out.println(\狗是吃肉的\); }
public void watchDoor(){//在子类中添加一个独有的方法,不是从父类中继承来的。 System.out.println(\狗具有看门的能力\); } }
//创建一个Animal的子类并继承Animal public class Cat extends Animal {
}
//创建一个测试类
public class Initail {
/**
* @param args */
public static void main(String[] args) { // TODO Auto-generated method stub /*
Animal obj1 = new Animal();//父类的引用是可以指向本类对象的 Animal obj2 = new Dog();//父类的引用是可以指向子类对象的 Animal obj3 = new Cat();
//Dog obj3 = new Animal();//错 ,因为不能使用一个子类的引用指向父类的对象。 obj1.eat();//调用的是父类中的方法 obj2.eat();//调用的是子类中的方法
obj2.watchDoor();//错 不能通过父类的引用调用子类独有的方法 obj3.eat();//调用的是字子类继承父类的方法
*/
Dog dog = new Dog();//创建一个子类对象 Animal animal = dog;//用一个父类的引用指向子类对象,自动类型提升, 向上类型转换。
自动类型转换
Dog dog2 = animal //再次将父类引用转换成子类引用,是存在风险的,编译器不允许这样的操作 Dog dog2 = (Dog)animal;//向下类型转换,强制类型转换,也是存在风险的
if(animal instanceof Dog){ Dog dog2 = (Dog)animal; }else{
System.out.println(\无法进行类型转换 转换成Dog类型\); }
if(animal instanceof Cat){//如果这个对象里含有Cat类型的元素就可以转换 Cat cat = (Cat)animal;//1.编译时 Cat类 2.运行时 Dog类型 }else{
System.out.println(\无法进行类型转换 转换成Cat类型\); } } }
通过instanceof运算符避免类型转换的安全性为他,它可以判断一个引用是否是某个类型或者某个类型的子类型,他会返回一个布尔值,通常会用这个布尔值跟if语句结合使用 3.多态中的引用类型转换
1)向上类型转换(隐式/自动类型转换),是小类型到大类型的转换(不存在风险) 2)向下类型转换(强制类型转换),是大类型到小类型
3)instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题 Dog dog = new Dog(); Animal animal = dog;//向上类型转换,自动类型转换 Dog dog2 = (Dog)animal;//向下类型转换,强制类型转换 If(animal instanceof Cat){ Cat cat = (Cat)animat;//1.编译时Cat类型 2.运行时Dog类型 }else{ System.out.println(“无法进行类型转换 转换成Cat类型”);
}
15.抽象类(有抽象类和抽象方法)
1.应用场景:(抽象类是约束子类必须那些方法) a. 在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这
些方法
b.
从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类的随意性。
2.作用:
限制规定子类必须实现某些方法,但不关注实现细节 3.使用规则:
a. Abstract 定义抽象类
b. abstract 定义抽象方法,只有声明,不需要实现 c. 包含抽象方法的类是抽象类
d. 抽象类中可以包含普通的方法,也可以没有抽象方法 e. 抽象类不能直接创建,可以定义引用变量
如何写一个抽象类:
语法定义:抽象类使用abstract 关键字修饰,则该类为抽象类。
Package com.immoc;
Public abstract class Telphone {//抽象类 } 实例:
//定义一个父类Telphone, 父类只是用来约束子类,所以把他定义成抽象类
Public abstract void call();//抽象方法没有方法体以分号结束 Public abstract void message();
public abstract class Telphone { public abstract void call(); public abstract void message(); }
//早些年的电话,要继承Telphones
public class CellPhone extends Telphone { @Override
public void call() {
// TODO Auto-generated method stub
System.out.println(\通 …… 此处隐藏:3536字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文