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。这个标题暗示了该活动可能是一个...
网盘文件永久链接 目录 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
2014高考政治必修3总复习随堂集训-第9课推动社会主义汇总.docx
2019高考二轮专题限时集训-书面表达之书信邮件 说明文(英语).docx
2014政治总复习随堂集训-选修5专题4劳动就业与守法经营(精).pdf
蓝桥杯大赛少儿创意编程组集训-难度一 本资源是蓝桥杯大赛少儿创意编程组集训的难度一课程,旨在使学员掌握EV3编程的基础知识和相关环境的基本使用。课程内容包括电脑和EV3主机基本操作、马达基础、传感器基础、...
6. **问题分析与设计**:学会将复杂问题分解为小问题,设计有效算法,编写清晰的代码。 集训资料中的“day1”至“day5”分别对应了不同阶段的学习内容,可能涵盖上述知识点的不同部分。例如,“day1”可能是对基础...
6. **国家集训队2018论文集.pdf**、**国家集训队2019论文集.pdf**、**国家集训队2017论文集.pdf**、**国家集训队2013论文集.pdf**:这些文件分别对应不同年份的集训队论文,对于研究IOI历史、了解历年比赛难点和学习...
后台管理系统(供管理员使用): (1)登录、查看、修改个人信息(姓名、性别、年龄、学号/工号、联系方式等) (2)角色管理:分为管理员、老师、和学生三种角色 (3)用户管理:对用户进行添加、删除、修改、...……
emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目,emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目
这些资料主要涵盖了1999年至2017年间NOI(全国青少年信息学奥林匹克竞赛)国家集训队的论文,以及2014年和2015年的NOI冬令营讲者PPT,是信息学竞赛领域的重要参考资料。NOI是中国最高级别的中学生信息学竞赛,而国家...
第六章 大数据存储基础-6 第七章 容灾备份技术基础-0 第七章 容灾备份技术基础-1 第七章 容灾备份技术基础-2 第七章 容灾备份技术基础-3 第八章 云计算基础-0 第八章 云计算基础-1 第八章 云计算基础-2 第九章华为...
《国家集训队论文99-17.zip》是一个压缩包文件,包含了1999年至2014年期间,国家集训队的论文集合。这个资源对于研究计算机科学,特别是参与或关注ACM(国际计算机科学奥林匹克)竞赛的人来说极具价值。ACM竞赛是...
根据提供的文件信息,我们可以深入探讨其中提及的MySQL索引的相关知识点。索引是数据库系统中极为重要的组成部分之一,尤其对于大型应用来说,合理的索引设计能够显著提高查询性能。 ### MySQL索引概述 ...
# 国家集训队论文列表(1999-2019) ___点击目录快速跳转:___ - _国家集训队论文列表(1999-2019)_ * [_1999_](#1999) * [_2000_](#2000) * [_2001_](#2001) * [_2002_](#2002) * [_2003_](#2003) * [_...
【国家集训队1999-2003】是一个涵盖了从1999年至2003年期间国家集训队相关活动的压缩包文件。这个文件集合可能包含了这段时间内国家集训队成员的研究成果、技术报告、竞赛资料或者学术论文等内容,旨在为学习者提供...
【标题】"2013国家集训队清华集训" 涉及的主要知识点是2013年中国国家信息学奥林匹克(OI)集训队在清华大学进行的训练活动。这个集训通常是为了选拔和准备国际信息学奥林匹克竞赛(IOI)的优秀学生团队。在这样的...
从文件信息中我们可以看出,这份集训材料的标题为“CSP-J复赛集训200分-300分必刷-csp-j-2021分糖果”,其中“必刷”强调了这套题目对于提升分数的必要性,而“分糖果”则可能是指通过完成这些题目,参赛者能够获得...
6. **算法分析与复杂度**:论文可能会深入讨论算法的时间复杂度和空间复杂度,以及如何通过算法改进降低计算资源消耗。 7. **数学基础**:集训队论文也可能会结合数论、图论、概率论等数学知识,讲解如何利用数学...