Java中什么是继承?
子类继承父类的属性

例子就好比,我家养了一只狗,狗妈妈生了好多狗宝宝。狗妈妈是父类 狗宝宝是子类
狗宝宝会继承狗妈妈 的种类属性 他还是一直小狗。

Java继承是干嘛的?
连接父类与子类的关系
例子 因为是狗妈妈生了狗宝宝所以他们是母子关系。这个生就连接了他们的关系

继承有什么优点?
减少重复的代码,减少工作量。

继承有什么缺点?
高内聚,低耦合

高内聚,低耦合意思是什么?
意思就是说不是什么事情都要用继承的
上面的例子来说因为他们都是狗所以在狗这个属性方面可以用继承
他们是同种类,但是他们总的有特殊的区别吧?比如模样,性别等
所以说用继承的时候一定要具体问题具体分析。
用继承还有个前提
一定要符合生活中的逻辑。

子类继承父类的属性,而父类不能继承子类的属性。没有父哪里来的子?
所以一定要符合逻辑。

那继承是怎么使用的呢?
子类继承父类的属性和方法()

那怎么写继承呢?
先把 类中相同的属性 提取出来 写成一个父类,然后再写子类去继承。

那子类继承父类那些东西呢?
子类继承父类的属性和方法

在代码中如何区分那个是父类那个是子类 ?
子类是 extends +父类名
父类就是你自己定义的
class +父类名

随便写个练习

class Father{  //父类
String color;String country;
}
class Son extends Father{ //子类
}

在Java中继承的规则
1.Java中只允许单继承 不允许多继承 (可以通过接口实现多继承的效果)
2.Java中 只允许多层继承 (属性 方法 会传递继承)

继承中最大的父类是谁 ?
继承中最顶端的父类是Object

最顶端的父类有什么作用?
当一个类中没有明确写出继承那个类 实际上 继承的就是最顶端的那个类
写一个代码运行看看

public class Demo03 {public static void main(String[] args) {}}
class DemoA {   //默认继承 extends ObjectString name ;public void sayHi() {System.out.println(name);}}
class DemoB extends DemoA{}

多层继承怎么继承?一个父类可以有无线个子类继承

public class Demo03 {public static void main(String[] args) {DemoC c = new DemoC();c.name = "我是C";c.sayHi();}}
//多层继承(可以爷爷类  - 父类 - 子类 - 孙子类- 重孙子类)
//需求:DemoC类 继承  DemoB类 继承  DemoA类
class DemoA {   //默认继承 extends ObjectString name ;public void sayHi() {System.out.println(name);}}
class DemoB extends DemoA{}
class DemoC extends DemoB{}

注意继承中构造方法是不能被继承的

public class Demo01{public static void main(String[]agrs){
Son son = new   Son();
son.sayHi();
System.out.println("-----")
}
}
class Father{String name ;
public Father(){
System,out,println("父类,无参构造方法");
}
public Father(String name){this。name =name ;System.outprintln("父类,有参构造方法");
}
public void sayHi(){
System.out.println(name);
}
}
//子类
class Son extends Father{public Son(){
super();  //调用父类 的无参构造方法
System。out.println("子类,无参构造方法")
public Son (String name){
super();//不管你是有参无参的构造方法 只要你调用父类的构造方法系统都会帮你调用super 来保证继承的完整性。
System.out,println("子类,有参构造方法")
}
}

为什么会打印 父类无参构造方法?
想要产生子类 必须要有一个父类
初始化子类的对象 需要先去父类中 调用构造方法
(因为构造方法 是是初始化属性的方法)

在继承的时候子类和父类 有相同名字的变量
在继承中 this 和super的区别是什么呢?
this 在类中 代表本类的对象
super在类中代表的是父类的对象

this的属性:可以调用到本类的属性,如果本类没有找到就回去父类找。
super的属性:直接调用父类的属性

本质的区别就是
this可以调用本类的构造方法 也可以调用父类的构造方法
super只能调用父类的构造方法

方法的重写 和方法的重载有哪些区别
方法的重载之
用相同的方法名,不同的参数 去实现相同功能。
方法的重写当父类和子类方法完全一致 可以实现相同的功能

final 关键字 (重点)
特点(绝育)
1.修饰类时 不能被继承
2.修饰变量 不能被修改
3.修饰方法时 不能被重写

public class Demo09 {public static void main(String[] args) {Team team  = new Team();team.sayHi();double pipi = Team.MAX_VALUE;System.out.println(pipi);}
}class Team{// final 修饰变量相当于 是常量(不能修改的量)//命名规则 名字全部大写 多单词 用下划线分开public static final double MAX_VALUE =3.14;public void sayHi() {System.out.println(MAX_VALUE);//无效的默认值//final赋初值时两种方法//1.直接给初值//2.从构造方法中赋值}
}
class A extends Team{}

⚔疯狂输出⚔ Java中的继承。相关推荐

  1. 利用JAVA中关于继承的相关知识求得圆柱体体积并输出

    利用JAVA中关于继承的相关知识求得圆柱体体积并输出 Write a program: 1)Define a Circle class and a Cylinder class, which is d ...

  2. java 的继承_关于java中的继承

    我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...

  3. Java中的继承 与 多态(中)

    先导: 我们在<Java中的继承 与 多态(上)>当中讲解了如下几个问题,  1.继承是什么   2.super关键字   3.特殊考点-父子类中不同代码块的实现顺序 所以现在我们对于继承 ...

  4. java中抽象类继承抽象类_用Java中的抽象类扩展抽象类

    java中抽象类继承抽象类 示例问题 当我创建Java :: Geci抽象类AbstractFieldsGenerator和AbstractFilteredFieldsGenerator我遇到了一个不 ...

  5. java中抽象类继承抽象类_Java中的抽象类用示例解释

    java中抽象类继承抽象类 Abstract classes are classes declared with abstract. They can be subclassed or extende ...

  6. java中的继承(一)

    在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类.在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wa ...

  7. Java中 利用继承的思想实现动物的分类,将动物分为水生动物和陆生动物,有其动物的属性和特征,又有其属性和特征,编程模拟。

    Java中 利用继承的思想实现动物的分类,将动物分为水生动物和陆生动物,有其动物的属性和特征,又有其属性和特征,编程模拟. 前言 动物在拥有自己本身所具有的特征的同时,还应该具有所在大类所具有的动物特 ...

  8. 解析java中的继承

    解析java中的继承 1 含义 在符合当代社会的约定俗成的逻辑的情况下,很多类具有相同的属性和方法,我们这些共有的属性和方法抽象成一个类后,通过extends关键字使得很多类与抽象成的类建立父子关系, ...

  9. java继承总结_JAVA笔记:Java中的继承总结

    继承:在Java中使用extends关键字来实现类的继承  ,extends意思就是派生,所以子类也叫派生类,继承的主要目的是扩展类的内容 操作格式: class A{}; class B exten ...

最新文章

  1. 21天精通python-21天学通Python 完整pdf扫描版[58MB]
  2. JAVA中indexOf函数和lastindexOf函数
  3. linux终端里CTRL-Z和CTRL-C的区别
  4. 【图网络】如何用Python实现算法:规划图技术(GraphPlanner)
  5. fusioncharts json java,FusionCharts使用教程:利用XML/JSON属性加载外部LOGO
  6. Qt creator5.7 OpenCV249之方框滤波(含源码下载)
  7. android课程表设计报告,制作课程表教案设计
  8. 软件测试 PreDay 决策表
  9. 使用XTU降低CPU功耗,自动执行不失效
  10. 天津奥的斯服务器显示PKS WT,天津奥的斯电梯故障代码大全
  11. Ubuntu 入门学习之从安装部署到java环境的安装
  12. Centos6连接网络配置
  13. Python | 人脸识别系统 — 用户操作
  14. ios中html怎么横屏,苹果xsmax页面怎么横屏
  15. Macbook Pro 鼠标卡顿问题
  16. 【深度学习】实例分割网络
  17. 【基金学习】基金的相关计算题目
  18. 直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究
  19. iPhoneX炫彩壁纸背景demo(含动效)
  20. crontab shell 每5秒执行_shell之定时周期性执行脚本-crontab

热门文章

  1. 注册表学习,修改注册表达到一定的效果
  2. 《计算机网络》学习笔记(二)物理层
  3. django5数据库查询操作 及字段说明
  4. 使用 BasePage 来解决 GridView 执行 RenderControl 产生的错误
  5. 2022全网最全最细的jmeter接口测试教程以及接口测试流程详解— 使用JMeter发送一个请求
  6. GATK官方推荐的workflow语言-WDL
  7. TMC2209是用于两相步进电机的超静音电机驱动器IC
  8. 套接字服务器打开显示未知文件异常,TCP-socket异常情况
  9. HBase RowKey的设计原则
  10. Nginx+SmokePing 实践