`
Atropos
  • 浏览: 2318 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

集训--6

    博客分类:
  • java
 
阅读更多
1.Java继承的语法格式
Java继承的关键字是extends

格式:
public class 类名(子类、超类、派生类)   extends 类名(父类、基类) {

}
注意:
Java类的继承是单继承。

2.子类继承到了什么,能调用的有哪些?
子类继承到了父类所有的属性和方法。

类有访问修饰符
private 类{}中
默认的 包中
protected 包中和包外的子类
public 项目中

3.方法重写
1.条件

2.调用

3.什么情况下使用

4.自动转型
byte b = 10;
int i  = b;

学生表示大学生。
继承关系

父类 对象名 = new 子类构造方法();

5.多态
对象之间的多态性

6.接口
定义接口的关键字是interface
格式
public interface 接口名   extends 接口,... {
//常量
public static final 数据类型 常量名 = 值;

//抽象方法
public 返回值数据类型 方法名(数据类型 参数名,...);
}
注意四点:

类去实现接口的关键字是:implements
public class 类名 extends 类名或者抽象类 implements 接口名,... {
//实现(重写)父接口中所有的抽象方法
}

接口和类的区别:


7.抽象类
定义抽象类的关键字:abstract class
格式:
public abstract class 抽象类名  extends 类名或者抽象类  implements 接口名,... {

//类中所有的属性和方法

//接口中的常量和抽象方法
public abstract 返回值数据类型 方法名(数据类型 参数名,...);

}
总结:
听课、看书,再查网络资料,我对类继承的理解如下:
1、Animals.java
/**自定义类名用 大写+小写形式Animals
* 方法的参数全部用小写,单词之间用下划线分割animal_weight
* 类变量用大写+小写形式AnimalName
*
*/
/**
* @author Administrator
*
*/
public class Animals {

public String AnimalName;
public float AnimalWeight;

//私有属性不可被继承,但可以利用继承的方法取得
private String AnimalClaseName = "动物";

//本类的构造方法,初始化类变量
Animals(String animal_name,float animal_weight)
{
    AnimalName = animal_name;
    AnimalWeight = animal_weight;
 
}

Animals(){
 
    this("名字未定",0);
}

//一个方法,用于获取私有属性值;
public String GetAnimalClassName()
{
    return AnimalClaseName;
}

//一个方法,动物行为
public void    Sleep()
{
 
    System.out.println(AnimalName + "要睡觉了!");
}

//终结方法,不可以被子类重载(不可被子类重新声明的方法)
//可以防止子类对父类方法的错误重写,增加代码的安全性和正确性
//还可以提高运行效率:java编译器将该方法的可执行代码字节码直接放到调用它的程序中
final void Dead() {
    System.out.println("终结了,父类Over后,不可被子类重载");
 
}
}
//Fish 类继承Animals类的属性和方法
class Fish extends Animals {
 
    String FishColor; //子类声明鱼的特有属性
 
    //可以重新声明父类的变量名相同的变量,称为覆盖,隐藏父类的属性。调用方法super.weight
 
    //构造方法,初始化变量;
    //有继承时的构造方法,可以重载,但不可以从父类继承!
    /*1、子类不能从父类继承构造方法;
     * 2、好的程序应该是:在子类构造方法中[调用]父类构造方法;
     * 3、super关键字,用户调用父类的构造方法,
     * 4、子类构造方法中没有声明调用父类的构造方法时,
     * 则系统执行子类构造方法时自动调用父类默认的构造方法(即自动调用父类中无参的构造方法)
     * */
    Fish(String fish_name,float fish_weight,String fish_color){
     //如果不明确调用父类的构造方法,系统自动调用父类默认的无参构造方法;
     //super(fish_name,fish_weight);  
     //此时,即使创建对象:Fish fs = new Fish("扁口鱼",2,"黄色"); 动物名称也是“名字未定”
  
     //super();//这是默认的
  
     //子类构造方法显式调用父类有参构造方法,用于子类对象的初始化;
     super(fish_name,fish_weight);
  
     FishColor = fish_color;
  
  
    }
 
    //再写一个无参的构造方法
    Fish(){
  
     this("鱼名未定义",0,"颜色未定义");
    }
 
    Fish(String fish_color){
  
     FishColor = fish_color;
    }
 
    public void GetFishInfo(){
     //获取父类的私有变量;
     System.out.print("\n我是" + super.GetAnimalClassName()+ "\n");
  
     System.out.println("我是鱼:"+    super.AnimalName + "重量:" + super.AnimalWeight + "颜色:" + this.FishColor );
  
  
    }
 
    //子类也可以定义和父类相同的行为(方法),重新定义Sleep方法,覆盖了父类的Sleep方法!称为方法的覆盖。
 
    public void Sleep(){
     System.out.println("鱼也要睡觉么?我是:" + super.AnimalName );
  
     //子类调用父类被覆盖的方法。
     System.out.print("\n父类被覆盖的方法为:" );
     super.Sleep();
     System.out.println("\n" );
    }
 
    /*
    void Dead(){
     System.out.println("本方法在父类已经定义成终结方法,不能覆盖父类的终态方法!");
  
    }*/
 
}
---------------------------
2、AnimalsTester.java

public class AnimalsTester {
public static void    main (String[] args){
 
    Animals an = new Animals();
    System.out.println("动物1名字:" + an.AnimalName );
    System.out.println("动物1重量:" + an.AnimalWeight    );
 
 
    Animals an2 = new Animals("老虎",100);
    System.out.println("动物2名字:" + an2.AnimalName );
    System.out.println("动物2重量:" + an2.AnimalWeight    );
     an2.Sleep();
 
    Fish fs = new Fish("扁口鱼",2,"黄色");
     System.out.println("鱼名:" + fs.AnimalName );
     System.out.println("鱼重:" + fs.AnimalWeight    );
     System.out.println("鱼颜色:" + fs.FishColor    );
     System.out.println(fs.GetAnimalClassName());
     fs.GetFishInfo();
     fs.Sleep();
  
     //dead方法是父类的方法,可被继承,不可覆盖
     //
     fs.Dead();
  
}
}
--------------------------
3、运行结果:
动物1名字:名字未定
动物1重量:0.0
动物2名字:老虎
动物2重量:100.0
老虎要睡觉了!
鱼名:扁口鱼
鱼重:2.0
鱼颜色:黄色
动物
我是动物
我是鱼:扁口鱼重量:2.0颜色:黄色
鱼也要睡觉么?我是:扁口鱼
父类被覆盖的方法为:扁口鱼要睡觉了!

终结了,父类Over后,不可被子类重载
分享到:
评论

相关推荐

    2023小码王暑期集训-杭州营8月第一期-X02

    【标题】"2023小码王暑期集训-杭州营8月第一期-X02"揭示了这是一个关于编程教育的活动,特别是在2023年的暑假期间,由小码王组织,地点设在杭州,是8月份的第一期课程,编号为X02。这个标题暗示了该活动可能是一个...

    实战集训营-带你锤碎MySQL.zip

    网盘文件永久链接 目录 01 01-1MySQL介绍及索引介绍.mp4 01-2索引原理.mp4 01-3组合索引.mp4 01-4索引分析01.mp4 01-5索引分析02.mp4 02 02-1锁的介绍.mp4 02-2表锁.mp4 ... 05-2数据分片方案.mp4

    政治总复习随堂集训-选修5专题4劳动就业与守法经营.docx

    政治总复习随堂集训-选修5专题4劳动就业与守法经营.docx

    2014高考政治必修3总复习随堂集训-第9课推动社会主义汇总.docx

    2014高考政治必修3总复习随堂集训-第9课推动社会主义汇总.docx

    2019高考二轮专题限时集训-书面表达之书信邮件 说明文(英语).docx

    2019高考二轮专题限时集训-书面表达之书信邮件 说明文(英语).docx

    2014政治总复习随堂集训-选修5专题4劳动就业与守法经营(精).pdf

    2014政治总复习随堂集训-选修5专题4劳动就业与守法经营(精).pdf

    蓝桥杯大赛少儿创意编程组集训-难度一

    蓝桥杯大赛少儿创意编程组集训-难度一 本资源是蓝桥杯大赛少儿创意编程组集训的难度一课程,旨在使学员掌握EV3编程的基础知识和相关环境的基本使用。课程内容包括电脑和EV3主机基本操作、马达基础、传感器基础、...

    信奥帮-信息学奥赛-CSP-J1S1初赛集训知识点-考点-思维导图课件

    6. **问题分析与设计**:学会将复杂问题分解为小问题,设计有效算法,编写清晰的代码。 集训资料中的“day1”至“day5”分别对应了不同阶段的学习内容,可能涵盖上述知识点的不同部分。例如,“day1”可能是对基础...

    IOI国家集训队论文1999-2021(缺2020)-2021.08.03.rar

    6. **国家集训队2018论文集.pdf**、**国家集训队2019论文集.pdf**、**国家集训队2017论文集.pdf**、**国家集训队2013论文集.pdf**:这些文件分别对应不同年份的集训队论文,对于研究IOI历史、了解历年比赛难点和学习...

    微集训-学科竞赛集训小程序(源码+数据库)545217

    后台管理系统(供管理员使用): (1)登录、查看、修改个人信息(姓名、性别、年龄、学号/工号、联系方式等) (2)角色管理:分为管理员、老师、和学生三种角色 (3)用户管理:对用户进行添加、删除、修改、...……

    2012数模集训-MATLAB建模.ppt

    emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目,emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目

    NOI 国家集训队论文 1999-2009 2013-2017

    这些资料主要涵盖了1999年至2017年间NOI(全国青少年信息学奥林匹克竞赛)国家集训队的论文,以及2014年和2015年的NOI冬令营讲者PPT,是信息学竞赛领域的重要参考资料。NOI是中国最高级别的中学生信息学竞赛,而国家...

    华为HCNA-Storage-BSSN华为认证网络工程师-建立存储网络体系V3.0培训.rar

    第六章 大数据存储基础-6 第七章 容灾备份技术基础-0 第七章 容灾备份技术基础-1 第七章 容灾备份技术基础-2 第七章 容灾备份技术基础-3 第八章 云计算基础-0 第八章 云计算基础-1 第八章 云计算基础-2 第九章华为...

    国家集训队论文99-17.zip

    《国家集训队论文99-17.zip》是一个压缩包文件,包含了1999年至2014年期间,国家集训队的论文集合。这个资源对于研究计算机科学,特别是参与或关注ACM(国际计算机科学奥林匹克)竞赛的人来说极具价值。ACM竞赛是...

    7天实战集训营-带你锤碎MySQL(1).pdf

    根据提供的文件信息,我们可以深入探讨其中提及的MySQL索引的相关知识点。索引是数据库系统中极为重要的组成部分之一,尤其对于大型应用来说,合理的索引设计能够显著提高查询性能。 ### MySQL索引概述 ...

    IOI国家集训队论文集1999-2019

    # 国家集训队论文列表(1999-2019) ___点击目录快速跳转:___ - _国家集训队论文列表(1999-2019)_ * [_1999_](#1999) * [_2000_](#2000) * [_2001_](#2001) * [_2002_](#2002) * [_2003_](#2003) * [_...

    国家集训队1999-2003

    【国家集训队1999-2003】是一个涵盖了从1999年至2003年期间国家集训队相关活动的压缩包文件。这个文件集合可能包含了这段时间内国家集训队成员的研究成果、技术报告、竞赛资料或者学术论文等内容,旨在为学习者提供...

    2013国家集训队清华集训

    【标题】"2013国家集训队清华集训" 涉及的主要知识点是2013年中国国家信息学奥林匹克(OI)集训队在清华大学进行的训练活动。这个集训通常是为了选拔和准备国际信息学奥林匹克竞赛(IOI)的优秀学生团队。在这样的...

    CSP-J复赛集训200分-300分必刷-csp-j-2021分糖果

    从文件信息中我们可以看出,这份集训材料的标题为“CSP-J复赛集训200分-300分必刷-csp-j-2021分糖果”,其中“必刷”强调了这套题目对于提升分数的必要性,而“分糖果”则可能是指通过完成这些题目,参赛者能够获得...

    1999-2009 & 2013-2017 集训队论文

    6. **算法分析与复杂度**:论文可能会深入讨论算法的时间复杂度和空间复杂度,以及如何通过算法改进降低计算资源消耗。 7. **数学基础**:集训队论文也可能会结合数论、图论、概率论等数学知识,讲解如何利用数学...

Global site tag (gtag.js) - Google Analytics