1-8继承extends
什么是继承?
继承是面向对象三大特征之一。java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示。在java语言里面只支持单继承,即一个类只能有一个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不能继承父亲大脑里面的思想和知识。如果一个类没有显示的继承其他类,那么这个类会默认继承Object类,Object是SUN公司提供的java中的根类。
继承的优点
提高了代码的复用性
提高了代码的维护性
让类与类之间产生了关系,是多态的前提
继承的缺点
增强了类之间的耦合。
软件开发的一个原则是高内聚,低耦合。
内聚是一个模块内各个元素彼此结合的紧密程度
耦合是一个软件里面不同模块之间相互连接的数量
如何使用extends来实现继承关系?
语法:
[修饰符列表] class 子类名 extends 父类名{
类体;
}
首先,来自己定义一个父类SuperClass
public class SuperClass{
public void m1(){
System.out.println("SuperClass中的m1方法");
}
private void m2(){
System.out.println("SuperClass类中的m2方法");
}
}
然后定义一个子类SubClass来继承SuperClass
public class SubClass extends SuperClass{
public void m3(){
System.out.println("SubClass中的m3方法");
}
}
写一个测试类来测试一下
public class Test01{
public static void main(String[] args){
SubClass s = new SubClass();
//因为SubClass继承了SuperClass,所以可以在子类里面调用父类的方法
s.m1();
//s.m2();//子类不能访问父类中private修饰的方法
//SubClass中自己的方法
s.m3();
}
}
将上面代码修改一下,创建一个SuperClass的父类SuperSuperClass
public class SuperSuperClass{
public void m0(){
System.out.println("SuperSuperClass中的m0方法");
}
}
让SuperClass继承SuperSuperClass
public class SuperClass extends SuperSuperClass{
public void m1(){
System.out.println("SuperClass中的m1方法");
}
public void m2(){
System.out.println("SuperClass类中的m2方法");
}
}
写一个测试类来测试一下
public class Test02{
public static void main(String[] args){
SubClass s = new SubClass();
s.m0();//可以调用
}
}
Java不支持多继承,但是支持多层继承,即子类—>父类—>爷爷类….—>祖先类—>Object类,子类可以访问其先辈类里面的非private修饰的成员方法和成员变量。
1-8继承extends的更多相关文章
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有 ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- Js 类继承 extends
html 及 js 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- iBatis.net 类的继承extends和懒加载
<resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...
- es6 Class的继承extends & super
Class之间可以通过extends关键字,实现继承. 子类会继承父类的属性和方法. class Point { constructor(x, y) { this.x = x; this.y = y; ...
- 8 继承-extends
面向对象的特征:继承,封装和多态 java 当中只支持单继承,不允许多继承 class Person { String name; int age; void eat() { System.out.p ...
- 继承extends
class Person{ String name; int age; void eat(){ System.out.println("吃饭"); } void introduce ...
- JAVA 继承 extends
/* 继承 1.提高了代码的复用性,简化了代码 2.让类与类之间产生了继承关系,才有了后面的多态的特性的存在 注意:千万不要为了获取其它类的功能简化代码,而建立继承关系, 必须要类与类之间存在继承关系 ...
- JAVA篇<一> 继承extends(已转移到JAVA总结篇)
前题:如果不经过指出继承,那么所有的类都继承了JAVA中的Object类. 正文: 继承的关键字是:extends,是所有面向对象语言的重要特性. 例public class TestExtends ...
- Java 继承extends、关键字super和this、多态、动态绑定
Manager 经理 extends Employee 雇员 "is-a"(是)关系是继承的一个明显特征.每个经理都是一名雇员. 从术语的角度讲,Manager是子类,Emplo ...
随机推荐
- glGenLists返回0或None的原因
最近调用PyOpenGL做显示,想在程序启动时候调用Display List进行显示,但是glGenLists返回None,若在程序启动后调用则没有任何问题. 搜索谷歌后,给出的解释: This ca ...
- Python 005- 使用Pyecharts来绘制各种各样的图形
本文转载自:https://blog.csdn.net/qq_39143076/article/details/79065448,如有侵权,请联系删除啊 如何做Python 的数据可视化? pyech ...
- HDFS vs. MongoDB
HDFS MongoDB 共同点 http://www.mongoing.com/wp-content/uploads/2016/08/MDBSH2016/TJ_MongoDB+Spark.pdf 横 ...
- JSP 用poi 读取Excel
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- NOT IN clause and NULL values
https://stackoverflow.com/questions/129077/not-in-clause-and-null-values This issue came up when I g ...
- wukong引擎源码分析之索引——part 2 持久化 直接set(key,docID数组)在kv存储里
前面说过,接收indexerRequest的代码在index_worker.go里: func (engine *Engine) indexerAddDocumentWorker(shard int) ...
- Digit(湘潭大学比赛)
题目链接: 点击打开链接 中文问题目就不解释了. 思路,找到这个数对应的的数字是多少,然后对这个数取对应的位置. 步骤:先打表打出一位数字对应字符串的长度,两位数的,到8,9就差不多了. 先确定给定的 ...
- LA-3029(扫描线)
题意: 给定一个n*m的矩阵,一些格子是空地“F”,一些是障碍"R",找出一个全部由F组成的面积最大的子矩阵; 思路: 对每个格子维护up[i][j],le[i][j],ri[i] ...
- table中tr或者td的点击事件
直接把时间添加到table或者tbody上,只有下面的tr或者td才能促发事件,通过e.target可以获得当前点击tr或者td,这样就可以进行查询或者删除操作了 如果是删除,直接e.target.r ...
- iOS多线程GCD的简单使用
在iOS开发中,苹果提供了三种多线程技术,分别是: (1)NSThread (2)NSOperation (3)GCD 简单介绍一下GCD的使用. GCD全称 Grand Central Dispat ...