教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

JAVA程序设计 - 图文(5)

来源:网络收集 时间:2025-09-21
导读: 例:class Dog estends Animal{ …… } 14.方法的重写 1.什么是方法的重写: 如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法是会优先调用子类的方法 2.语法规则: a.返回值类型 b.方法

例: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

JAVA程序设计 - 图文(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/446966.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)