`
daihongtao110121
  • 浏览: 15215 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

类的继承总结

 
阅读更多
          类的继承总结
  一:使用继承的原因和作用:
   原因: 一个父类就拥有了其子类的所以属性和方法,假如要用子类方法时,我们就 可以直接从父类那里继承过来,而不需要在重新去写子类的属性和方法了,但是要记住子类还可以拥有其父类没有的方法和属性,
  例如。学生和大学生。学生是一个父类,那么作为子类大学生,那么他将必有一个属于自己特有的方法。
  作用:1,使用继承的时候,可以提高代码的重用性
         子类可以直接运用父类中的方法,不用重新去写。
  2,使用继承可以提高程序的扩展性
        由于子类可以有自己独特的方法,所以在用很多子类的时候,每个子类可以用到自己独特的方法。这样也就使得程序具有扩展性。
  
  二:继承的格式
    首先,继承有一个关键字extends,用来识别继承。其格式如下:
   Public class 子类名 extends 父类名{
     
  
  }
  在括号里面可以添加属于子类拥有的特殊方法
  
三:子类继承到父类的哪些属性和方法
子类可以继承到父类的几乎一切方法,除了构造方法不能意外。
例如,定义一个子类UNStudent和一个父类Student
//定义一个父类,Student类
Public class Student{
    //设置属性的
  Private String name;
  //定义一个构造方法
  Public student(String name){
  This.name=name;
  }
}

//定义一个子类UNStudent类
Public class UNStudent{
     //设置属性
   Private String name;
   //重新构造子类的构造方法
  Public UNStudent(String name){
//this 是表示当前类,下面的this是表示的UNStudent
     This.name=name;
}
}
从这个例子中我们可以看见。父类中的构造方法没有继承到子类。换个解读想,要是继承了,那么两个类的姓名不是一样了么。由此我们知道。构造方法子类还是得自己重新写

2、访问修饰符(private,protected,默认的,public)决定了子类是否能使用父类中的属性和方法。

1)     子类和父类在同一个包下
只有父类中private属性和private方法不能被子类或子类的对象调用。

父类中protected,默认的,public方法都可以被子类或子类的对象调用。

2)     子类和父类不在同一个包下
 父类中默认的和private属性和方法不能被子类或子类的对象调用。
 父类中protected属性和方法能被子类调用,但不能被子类的对象调用
 父类中public属性和方法都可以被子类或子类的对象调用。
四、     方法重写:
1、     为什么要方法重写?
生活中的例子:
老师是一个类,都拥有教书的行为,但是不同专业的老师所教的课程是不一样的。这样就需要方法重写了
2、     方法重写的条件
重写后的方法的方法名、返回值、参数类型、参数个数、参数顺序必须和父类的方法一致
3、     子类方法重写的访问修饰符必须小于或等于父类方法的访问修饰符。
如果父类中的方法的访问修饰符为protected的,在子类进行方法重写时,访问修饰符可以是protected或public。
4、     如果实现了方法重写,那么子类的对象优先调用的是子类中的方法。
5、     子类可以定义自己的属性和方法。

五、     对象的自动转型
1、实现对象的自动转型的条件:存在继承关系。
2、格式:
父类名  对象名 = new 子类构造方法();
自动转型存在的问题,对象不能引用子类自己定义的方法
自动转型后,对象不能引用子类自己定义的方法,是由于java机制引起的

5、自动转型的作用:提高代码的重用性。

通过自动转型,可以示例化不同子类的对象,自动转型后,这些对象都是父类类型的,这样,就可以把父类类型的一个变量作为参数,把不同子类的对象传给一个方法,从而避免了写多个不同参数类型(不同子类类型)的方法,提高了代码的重用性。




六、     多态
多态是JAVA的方法重载、继承、方法重写、自动转型等技术的组合。多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要它们都是从同一父类导出来的。


/**
* 定义一个父类,
*/
public class Hanxin {
/**
* 定义父类的属性
*/
     private String name;
     private int blood;
     /**
      * 设置一个姓名属性的方法
      */
     public void setName(String name){
    this.name=name;
     }
     /**
      * 定义一个获取姓名属性的方法
      */
     public String getName(){
    return name;
     }
     /**
      * 定义一个设置属性姓名的方反法
      */
     public void setBlood(int bl){
    this.blood=bl;
     }
     public int getBlood(){
    return blood;
   
     }
     /**
      * 定义战斗方法
      */
     public void fight(Hanxin Ha){
    Ha.blood--;
     System.out.println(name+"攻击了"+Ha.getName()+","+Ha.getName()+"血量减少一"+"+Ha.getName()+剩余血量是"+Ha.getBlood());
     }
}
/**
* 定义一个子类
*/
/**
* 继承父类的属性和方法
*/
public class Xiangyu extends Hanxin {

/**
* 重写一个大韩信战斗方法
*/
public void fight(Hanxin Ha){
Ha.setBlood(Ha.getBlood()-10);
System.out.println(getName()+"攻击了"+Ha.getName()+","+Ha.getName()+"剩余血量是"+Ha.getBlood());
}

}

/**
* 定义一个子类
*/
public class Xiaohe  extends Hanxin{

/**
* 子类方法的重写
*/
public void fight(Hanxin Ha){
Ha.setBlood(Ha.getBlood()-15);
System.out.println(getName()+"攻击了"+Ha.getName()+","+"剩余血量是"+Ha.getName()+Ha.getBlood());
}
}

/**
* 定义一个Test类
*
*/
public class Test {

/**
* 程序的入口主函数
*/
public static void main(String[] args) {
        //实例化一个对象的属性、
Xiangyu Xi=new Xiangyu();
Xiaohe XIa=new Xiaohe();
//设置一个对象的属性方法
Xi.setName("项羽");
XIa.setName("萧何");
//设置一个对象属性的方法
Xi.setBlood(30);
XIa.setBlood(20);
//判断方法进行的条件
while(XIa.getBlood()>0 && Xi.getBlood()>0){
//调用XIa的战斗方法
XIa.fight(Xi);
//判断胜利的条件
if(Xi.getBlood()<=0){
System.out.println(XIa.getName()+"胜利了");
break;
}
//调用Xi的战斗方法
Xi.fight(XIa);
if(XIa.getBlood()<=0){
System.out.println(Xi.getName()+"胜利了");


  • 大小: 12.3 KB
分享到:
评论

相关推荐

    封装继承多态总结

    封装继承多态总结

    JAVA中的继承学习总结

    JAVA中的继承学习总结JAVA中的继承学习总结

    继承和抽象类的总结

    这个文档总结概括了继承和抽象类的相关知识以及需要注意的事项

    继承与派生总结

    c++继承与派生总结 面向对象的程序设计中提供了类的继承机制,允许...以原有的类为基础产生新的类,我们就说新类继承了原有类的特征,也就是说从原有类派生了新类。 类的派生机制的好处在于:代码的重用和可扩充性。

    Java实验报告——类的继承、多态的应用

    1、实验名称:类的继承、多态的应用 2、代码内容:学生管理类 3、【实验目的】 (1)进一步熟悉抽象类和抽象方法的定义 (2) 进一步掌握集成和多态的实现方式。

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    C++类总结多态继承

    C++中类的总结,适合毕业找工作,或新手突击C++用

    Java方法继承、方法重载、方法覆盖总结

    Java方法继承、方法重载、方法覆盖总结。比较具体细致地描述他们之间的连系与区别,需要的同学可以看看。

    关于类与继承和相关基础东西总结

    NULL 博文链接:https://java--hhf.iteye.com/blog/1699633

    MinGW如何存储对象、如何实现类继承、 多态.pptx

    通过代码举例总结的的方式,对c++的类对象在MinGW编译器中存储的机制,以及继承、多态等c++特性的实现机制。

    类的继承与代码的复用

    {实验报告需单独下载,不过源代码里有注释} ...总结:先建立一个抽象类shape,然后建立一个核心类求体积(面积*高),再建立各种实例图形(对抽象类的继承),直接可输出图形体积,即实现了代码的复用。

    《java面向对象程序设计-继承和多态》教案.doc

    } 创建接口的步骤 2-2 接口使用示例 总结 封装、继承和多态是面向对象的主要特征 继承可提高代码的重用性,使用extends关键字来实现。除了构造方法之外,父类的所有 方法和属性都被子类的对象继承 多态性是不同的...

    java语言内部类总结

    定义在一个类内部的类叫内部类,包含内部类的类...内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。

    【JavaScript源代码】深入JS继承.docx

     目录 前言准备总结继承的n种方式原型式继承原型链式继承借用构造函数(类式继承)组合继承寄生组合式继承结束语 前言 准备 总结 继承的n种方式 原型式继承原型链式继承借用构造函数(类式继承)组合继承寄生组合...

    C++程序设计,主要为C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数等章节总结

    内容主要为:C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数、输入/输出流、文件操作、函数模板与类模板九个章节的相关知识点总结,其中包括知识点介绍,知识点分析,...

    在JavaScript中模拟类(class)及类的继承关系

    今天我主要谈谈Javascipt中模拟“类”的方法及js中继承的总结和回顾。 js中实现“类”与继承,既是重点,又是难点。很多同学可能都对js中“类”与继承都有所了解,但是深入剖析的时候,感觉力不从心、模棱两可。 ...

    JavaScript类的继承操作实例总结

    本文实例总结了JavaScript类的继承操作。分享给大家供大家参考,具体如下: 一、类式继承 首先要做的是创建构造函数。按惯例,其名称就是类名,首字母应该大写。在构造函数中,创建实例属性要用关键字this 。类的...

    Ruby类继承、抽象类、类拓展混入、代理类实例

    1、类继承: 当多个类公用很多方法的时候可以将公用方法部分抽取出来,需要的类做相关继承。 例子: 代码如下: class A ”it was a “ C.new.a #=&gt;”it was a “ 2、抽象类 当多个类要继承一个类时,用第一种方法...

Global site tag (gtag.js) - Google Analytics