关于继承的继承机制:继承中最常使用的两个关键字是exteds和implements。今天主要和大家分享extends的知识点。这两个关键字的使用决定了一个对象和另一个对象是否是IS-A关系。同时我们还能实现一个对象获取另一个对象的属性或方法。

1.继承的定义:

通过extends关键字可以申明一个类是继承另外一个类而来的,一般形式如下:

public class A{  //A.Java
private int i;
protected int j;
public void func(){...
}
}
public class B extends A {...//B.Java
}

 以上代码说明,类B有类A继承而来的,B是A的子类,而A是Object的子类。作为子类,B 的实例拥有A所有的成员变量,但对于private的成员变量类B却没有访问权限,这保障了A的封装性。

  另外在程序的处理中发现两个类的定义非常相似,有很多的相同点,如教师的属性姓名,所属学校类似,类的方法也基本相同。针对这种情况,将两个类的共性抽取出来,形成父类,使得这两个类成为父类的子类,则子类继承父类的基本属性和方法,不再存在重复的代码,从而实现了代码的复用性。

2.继承的传递性:

类的继承是可以传递的。类B继承了类A。类C又继承了类B,这是C包涵A和B的所有成员及方法,以及C自身的成员与方法,这称为类的继承的传递性。类的传递性对Java语言有重要的意义。

3.类中的属性的继承与隐藏:

关于类的属性继承也就是子类可以以继承父类的所有非私有属性,而关于属性的隐藏,指的是子类可以隐藏继承的成员变量,对于子类,可以从父类继承的成员变量,只要子类中定义的成员变量和父类中的成员变量同名,子类就隐藏了继承的成员变量。

4.方法的继承:

父类中的非私有方法都可以被子类继承:

class Person{  //父类
private String name;
private int age;
public void initInfo(String s,int i) {
name = s;
age = i;
}
public void showInfo() {
System.out.println("尊敬的"+name+",您的年龄为:"+age);
}
}
public class SubStundent extends Person{ /子类继承父类
private String school;
private int engScore;
private int JavaScore;
public void setScore(String s,int e,int j) {
school=s;
engScore=e;
JavaScore=j;
}
public static void main(String[] args) {
SubStundent objStudent = new SubStundent();
objStudent.initInfo("李四", 22);
objStudent.showInfo();
objStudent.setScore("清华大学",85,90 );
}
}

  在子类继承父类的成员方法是,应注意:

  1.子类不能访问父类的private成员方法,但是子类可以访问父类的public、protected成员方法。

  2.访问protect的成员方法时,子类和同一包内的方法都能访问父类的protected成员方法,单其他方法不能访问。

5.方法的覆盖:

覆盖是子类对父类的允许访问的方法的实现过程进行重新编写,并且这个方法的名字、返回类型、参数列表与从父类继承的方法完全相同。覆盖的好处在于子类可以根据需要,定义自己特定的 行为。也就是说,子类能够根据需要实现父类的方法。在面对对象原则里,覆盖意味着可以重写任何现有方法。子类通过方法的覆盖可以隐藏继承的方法。

6.方法的重载:

与方法的覆盖不同,方法的重载不是父子类之间的同名方法的调用,而是在一个类中允许同名的方法存在,是类对自身同名方法的重新定义。重载是在一个类里面实现的,方法的名字相同而参数等不同。返回类型可以相同也可以不同。每个重载方法都必须有一个独一无二的参数类型列表。

(11.28)Java小知识!的更多相关文章

  1. (11.13)Java小知识!

    今天想要与大家分享一下有关于构造方法的知识! 构造方法的定义与作用 构造方法是一种特殊类型的方法.当一个对象被创建的时候,构造方法用来初始化对象,也就是说构造方法其实是一个名词而不是动词,像我刚刚开始 ...

  2. (11.20)Java小知识!

      经过一段时间的学习,我也终于来到了Java语言的核心篇,也就是对象与类的学习,今天想要和大家分享的是关于类的小知识点. 1.类的声明: 类可以看成创建Java对象的模板.类亦可以理解成Java一种 ...

  3. (11.06)Java小知识

    最近由于课程变化,学习计划也跟着改动,留给我写博客的时间也越来越少.今天晚上没有课,抽空过来图书馆写一写,许久不写感觉都有点陌生了! 今天要和大季家分享的衔接了上一篇博客,是关于方法的嵌套调用与递归调 ...

  4. 每天学点Java小知识【1】

    一 Java标识符和关键字 1.标识符 作用:用来标识类名.变量名.方法名.类型名.数组名.文件名的有效字符序列. 组成规则:由字母.下划线.美元符号和数字组成,且第一个字符不能是数字字符.注意:标识 ...

  5. java小知识,驼峰规则

    单词之间不以空格.连接号或者底线连结(例如不应写成:camel case.camel-case或camel_case形式).共有两种格式: 1.小驼峰式命名法(lower camel case): 第 ...

  6. Java小知识----POI事件模式读取Excel 2007

    一.知识背景 1.读取excel的方法选择问题 java中读excel中的时间,我们通常用POI去解析,在使用new HSSFWorkbook(NEW FileInputStream(excelFil ...

  7. Java小知识--length,length(),size()方法详细介绍

    Java中length,length(),size()区别 length属性:用于获取数组长度. eg: int ar[] = new int{1,2,3} /** * 数组用length属性取得长度 ...

  8. JAVA小知识

    eclipse是日蚀的意思,eclipse是IBM公司的,当年和SUN公司的java竞争,sun的意思是太阳,所以你明白了? Java的起名是 java(爪哇)咖啡,java原意是爪哇的意思,当初起名 ...

  9. (10.23)Java小知识!

    ---恢复内容开始--- 方法的定义: 一般情况下,定义一个方法包含以下语法: 修饰符 返回值类型 方法名 (参数类型 参数名 , ...){ ... 方法体 ... return 返回值; } 修饰 ...

随机推荐

  1. [置顶] win10 uwp 参考

    态度随意申请专栏,没想到通过 看了我的博客,都是在别的大神博客看到,然后修改他们的 我看到的大神博客 东邪独孤 http://www.cnblogs.com/tcjiaan/ 老周,买了他的<W ...

  2. Xamarin.Forms 开发IOS、Android、UWP应用

    C#语言特点,简单.快速.高效.本次我们通过C#以及Xaml来做移动开发. 1.开发工具visual studio 2015或visual studio 2017.当然visual studio 20 ...

  3. C#中的协变(Covariance)和逆变(Contravariance)

    摘要 ● 协变和逆变的定义是什么?给我们带来了什么便利?如何应用? ● 对于可变的泛型接口,为什么要区分成协变的和逆变的两种?只要一种不是更方便吗? ● 为什么还有不可变的泛型接口,为什么有的泛型接口 ...

  4. thinkphp使用phpqrcode生成带logo二维码

    //二维码图片保存路径 $pathname = date("Ymd",time()); $pathname = "./Qrcode/" . $pathname; ...

  5. LeetCode 371. Sum of Two Integers (两数之和)

    Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Exam ...

  6. Vue源码后记-其余内置指令(2)

    -- 指令这个讲起来还有点复杂,先把html弄上来: <body> <div id='app'> <div v-if="vIfIter" v-bind ...

  7. 愚蠢的遗留BUG

    二次开发本来就是很恶心的事,我竟然是三次开发. 今天遇到一个BUG,上传图片的时候报错了,操作过程很简答,点击上传按钮,选择图片,确定上传,如图: 报错信息很直白,也很奇怪: (为了写博客,把代码回滚 ...

  8. .10-Vue源码之Watcher(1)

    上一节最后再次调用了mount函数,我发现竟然跳到了7000多行的那个函数,之前我还说因为声明早了被覆盖,看来我错了! 就是这个函数: // Line-7531 Vue$3.prototype.$mo ...

  9. 京东口红top 30分析

    一.抓取商品id 分析网页源码,发现所有id都是在class="gl-item"的标签里,可以利用bs4的select方法查找标签,获取id: 获取id后,分析商品页面可知道每个商 ...

  10. 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J Cleaner Robot

    Cleaner RobotCrawling in process... Crawling failed Time Limit:2000MS     Memory Limit:524288KB     ...