继第一堂课之后 这节课真的是拖的有点久啦 。
今天有点不在状态以至于被老师问了几个问题都回答得奇奇怪怪的
让我边听大悲咒边忏悔把 = =
(PS:在写完课堂整理之后我会贴一道有意思的面试题,骚年们,要是你 你能答对么? >< )
下面进入正题:
第一节课讲了类和对象之后,这节课自然开始讲类的继承
(接 金R奋斗日记の菜鸟入门第一课→ →)
6.类的继承
思考:为什么需要继承?
学生
大学生
XX大学学生
1>.类是对象共同点的描述
2>.自动转型和强制转型
{子类继承父类的时候: 可向上转型 : 自动转型:子类的对象的类型可以自动转成父类型。
不可向下转型:强制转型:将父类对象强制转成子类类型,
向下转型的条件是:只有当对象本身的类型是这个子类类型的时候才能强制转型 。
如:父类:Student , 子类:UNStudent
Student stu = new Student();
Student stu1=new UNStudent(); -----这是可以的
UNStudent stu2=new Student(); -----这是不行的
但是:UNStudent stu3=(UNStudent)stu2; -----这也是可以的(符合条件的强制转型)
}
{
1.子类会继承父类的属性和方法
2.子类可以定义自己特有的属性和方法
3.子类可以重写从父类继承来的方法
重载:方法名相同,参数不同,且是发生在同一个类中。
重写:方法的定义和参数一样,方法体不一样。一般是在继承中用到。
}
3>.关于子类特有的方法的调用
子类特有的属性和方法,只能是子类类型的对象才能调用
一个对象声明的是什么类型,就只能调用这个类型中定义了的方法及其父类中定义的方法
如果一个对象被自动转型成了父类类型的对象之后还需要调用子类特有的方法,则又需要强制转型转回来。
4>.关于子类重写方法的调用
对象是调用父类的方法还是子类重写的方法,取决于new的时候new的是什么
5>.在调用子类的构造方法的时候,会先调用父类的构造方法
6>对.多态的理解
程序举例如下:
先创建了一个Student类
public class Student { public Student(){ System.out.println("student"); } //构造方法 protected String name; public void setName(String name){ this.name=name; } public void study(){ System.out.println(name+"在学习"); } }
创建一个UNStudent类继承Student类
public class UNStudent extends Student { public UNStudent(){ //这里省略了 super(); 首先会调用父类的构造方法 System.out.println("UNStudent"); } public void CET4(){ System.out.println(name+"是大学生,需要考四级!"); } //子类特有的方法 public void study(){ System.out.println(name+"是大学生,学习靠自己!"); } //重写父类的方法 }
调用
public class manage { // 多态:由于继承和重写机制,相同类型的对象,调用相同的方法,得到的结果可能不一样 public static void main(String args[]) { Student stu = new Student(); stu.setName("张三"); stu.study(); UNStudent stu2 = new UNStudent(); stu2.setName("李四"); // 如果子类重写了继承来的方法,则子类对象会调用重写之后的方法 stu2.study(); stu2.CET4(); // (向上转型)自动转型 Student stu3 = new UNStudent(); stu3.setName("王五"); // 对象是调用父类的方法还是子类重写的方法,取决于对象本身的类型 stu3.study(); // 子类特有的属性和方法,只能是子类类型的对象才能调用 // stu3.CET4(); 出错 !! // (向下转型)强制转型 // 只有当对象本身的类型是这个子类类型的时候才能强制转型 UNStudent stu4 = (UNStudent) stu3; stu4.study(); stu4.CET4(); } }
运行结果:
student
张三在学习
student
UNStudent
李四是大学生,学习靠自己!
李四是大学生,需要考四级!
student ——————————————————————(说明先调用了父类的构造方法~)
UNStudent
王五是大学生,学习靠自己!
王五是大学生,学习靠自己!
王五是大学生,需要考四级!
你们猜对了吗? 反正运行之前老师问我我没答对
接下来稍稍讲了一下接口:
接口:非常抽象的一个类
接口中的属性:属性只能是常量
接口中可以有方法:都是抽象方法
方法默认是public abstract的 ,而且也必须是的 。方法没有方法体。
接口没有构造方法,不能创建对象
* 接口的作用:1,作为类型 ;2.充当父类,可子类继承
{
子类在实现接口的时候必须要重写接口里面的所有方法
}
------------------------------------------------------------------------------------------------------------------------------------
1.java中的继承是单根继承,一个子类只能继承一个父类
public class A{}
public class B extends A{}
2.一个类可以实现多个接口(必须要实现所有接口的方法)
public interface C{}
public interface D{}
public interface E implements C,D{}
3.接口可以继承多个接口(不需要实现方法)
public interface F extends C,D{}
4.一个类可以在继承一个类之后,再实现多个接口
public class G extends A implements C,D{}
(A,C,D都是G的父类,但是C,D不是A的父类 A,C,D是平级的)
**********************************************************************************************************************************
今天我是写完了作业再来写博客的喔。>< ><
好了,
说了这么多 感觉重头戏是下面这道面试题才对哈哈~
来咯
题:
public class Test {
public int aa(){
static int i=0;
i++;
return i;
}
public static void main(String[] args) {
Test test=new Test();
test.aa();
int j=test.aa();
System.out.println(j);
}
}
(答案 就先不公布啦,我觉得挺有意思的一道题。还是。。。。 我太小看你们了? )
不妨留言告诉我你的答案啦 ~~~~
好啦,今天到这。
GN,ITeye。
相关推荐
《MATLAB编程(第二版)-菜鸟入门教材》这本书旨在帮助初学者快速掌握MATLAB的基础知识和实际应用技巧。 在本书中,读者将了解到以下关键知识点: 1. **MATLAB简介**:了解MATLAB的历史、应用领域以及它与其他编程...
标题《R菜鸟入门》所涉及的知识点涵盖了R语言的基础入门、学习R的重要性以及实际应用。R语言是一种用于统计分析、图形表示以及数据挖掘的编程语言,广泛应用于科学研究和数据分析领域。 描述部分告诉我们作者dapeng...
本资料为本人学习matlab编程(第二版)-菜鸟入门教材时对其课后习题(1-4章)所编的程序,以及书本上的源程序。适用于才开始学习matlab编程
以下是一些关于Linux菜鸟入门级命令的详细说明,旨在帮助新手快速熟悉这个强大的操作系统。 1. **ls**:用于列出目录中的文件和子目录。通过`ls -l`可以显示详细信息,包括权限、所有者、大小等。 2. **cd**:改变...
jmeter 入门到进阶系列教程 jmeter 是一款优秀的开源性能测试工具,目前最新版本为 3.0 版本。它具有多种优点,如高可扩展性、精心简单的 GUI 设计、完全的可移植性和 100%纯 Java 等。jmeter 的安装非常简单,只...
《MATLAB编程(第二版)》是一本专为初学者设计的入门教材,旨在帮助那些对MATLAB感兴趣的读者快速掌握这一强大的科学计算工具。MATLAB(Matrix Laboratory)是一种交互式的编程环境,它集数值分析、矩阵计算、信号...
资源名称:qt菜鸟入门到精通内容简介: qt菜鸟入门到精通,是一套针对qt爱好者而总结积累的学习经验和学习知识,它的主要作用是将现今用到的各种qt编写的程序进行集合,然后把知识点融汇在实战练习中,来达到速成...
本文是我为大家分享的区块链技术文章系列中的第一部分【区块链之菜鸟入门】的第一篇,这篇文章咱们先抛开技术细节,用漫画的形式撩开神秘面纱,和大家聊一聊到底区块链是什么。
因此,一套全面而系统的入门教材,成为菜鸟们踏进这个大门的钥匙。 “很全面的菜鸟入门教材”应运而生,它不仅名称直接,更在内容上力求覆盖IT领域的基础知识以及部分进阶技能,旨在为初学者提供一个完整的知识体系...
FSM初学者教程 FSM编程-菜鸟入门(清晰版)
JAVA菜鸟级入门教程
《谁说菜鸟不会数据分析(入门篇)第四版》是一本专为初学者设计的数据分析教程,旨在帮助新手快速掌握数据分析的基础知识。这本书可能包含了Excel在数据处理、分析和可视化方面的应用,因为“excle”标签暗示了内容...
LINUX教程书籍,菜鸟入门宝典 LINUX教程书籍,菜鸟入门宝典 LINUX教程书籍,菜鸟入门宝典
3dmax 菜鸟入门教程 这是part2的资料