继承

●示例

class Person {
public String name; Person(){
System.out.println("Person Constrctor...");
}
} public class Husband extends Person{ Husband(){
System.out.println("Husband Constructor...");
} public static void main(String[] args) {
Husband husband = new Husband();
}
} /*结果
* Person Constrctor...
* Husband Constructor...
* 子类:Husband 继承 父类:Persion
*/

子类拥有父类的非private的属性、方法

问:私有属性和方法能不能被继承?答:不能,因为不能被调用。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展

在java中,类和类之间是单继承关系(一个类只能继承一个父类)

类 和 类 单继承

类 和 接口 多实现

接口 和 接口 多继承

继承的关键字:extends、implements

当一个类没有继承的两个关键字,则默认继承object  (java.lang.object)

public class Test{
public static void main(String[] args) {
System.out.println("---a---");
Animal a = new Animal();
System.out.println("---a2---");
Animal a2 = new Animal("dog",888);
System.out.println("---p---");
Person p = new Person();
System.out.println("---p2---");
Person p2 = new Person("China", 666);
System.out.println("-------");
p.atcivity();
//instanceof 判断对象是否是某个类的实例
System.out.println(p instanceof Animal);
System.out.println(p instanceof Person);
}
} class Animal{
public int id;
public String name;
public int age; //如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。
Animal(){
System.out.println("动物世界:Animal()");
} //如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
Animal(String name, int age){
System.out.println("动物世界:Animal(String name, int age)" + name + "," + age);
} void eat(){
System.out.println("动物会吃食物");
} //final类型的方法不能被子类重写
final void run(){
System.out.println("动物会活动");
} } //子类继承父类
class Person extends Animal{
//新增属性country
public String country; //子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。
Person(){// 自动调用父类的无参数构造器
System.out.println("人类的世界:Person()");
} Person(String country, int age){
super("China", 666);
System.out.println("人类的世界:Person(String country, int age)"+ country + "," + age);
} //重写父类的方法
@Override //添加这个注释 未报错 重写成功。
void eat(){
System.out.println("人类是杂食性动物");
} /* 报错,因为final类型的方法不能被子类重写
* void run(){
System.out.println("-------");
}*/ void atcivity(){
super.run();
super.eat();//super 指向父类的引用
this.eat();//this 指向自己的引用
}
}

运行结果:

---a---
动物世界:Animal()
---a2---
动物世界:Animal(String name, int age)dog,888
---p---
动物世界:Animal()
人类的世界:Person()
---p2---
动物世界:Animal(String name, int age)China,666
人类的世界:Person(String country, int age)China,666
-------
动物会活动
动物会吃食物
人类是杂食性动物
true
true

Java 继承01的更多相关文章

  1. 111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现

    111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现 本文知识点: 继承的实现 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  2. [Java 教程 01] Hello,Java!

    前言 从事编程已经有一段时间了,突然发现,Java作为我的第一编程语言,自己似乎对她并有一个系统的思想.当下Java依旧保持着超高的热度,新特性也不断出现,从当初学习的java6版本到最近刚出的jav ...

  3. java基础 01

    java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...

  4. 087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点

    087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点 本文知识点:封装的概念和特点 说明:因为时间紧张,本人写博客过程中只是对 ...

  5. Java继承与组合

    Java继承与组合 继承 java 中使用extends关键字表示继承关系,当创建一个类时,如果没有明确指出要继承的类,则是隐式地从根类Object进行继承. 子类继承父类的成员变量 子类能够继承父类 ...

  6. JAVA继承时构造函数的问题

    今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了. 下面是我个人的总结: 先创建一个父类,里面有两个构造函数: public class Jisuan ...

  7. Java继承和接口

    接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...

  8. Java继承的初始化

    /** * Created by xfyou on 2016/11/2. * Java继承的初始化 */ public class Beetle extends Insect { int k = pr ...

  9. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

随机推荐

  1. 【LeetCode】387. First Unique Character in a String 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  2. 编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,使用Runnable解决线程安全问题

    查看本章节 查看作业目录 需求说明: 车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,要求使用同步方法保证售票过程中票数的正确性 实现思路: 创建 Java 项目,在 ...

  3. 每天学一点——python注释规范

    python注释规范 python注释语法 这个是注释 注释是不影响代码运行的 当然注释也是有书写规范的,就像图片中的 注释前面#加空格再加上这条代码的注释(单行注释用#) 不然你会得到下面的结果 * ...

  4. pycharm debug调试模式报“UnicodeDecodeError:'gdk' codec can't decode byte 0xac”,无法正常调试

    遇到的问题: 本机python 3.8 pycharn 3.4.4 运行代码的时候,选择debug模式,提示"UnicodeDecodeError:'gdk' codec can't dec ...

  5. JMeter跨线程,怎么定义全局变量,跨线程使用变量?

    JMeter跨线程时,怎么定义全局变量,跨线程使用此变量? 通过函数助手,获取到设置变量的语法脚本 2.通过Bean shell Sampler取样器,定义全局变量 3.定义好全局变量,可以调用,调用 ...

  6. hadoop 之 hadoop2.7.7升级到hadoop2.8.5

    服务器规划 准备阶段 停服务 stop-yarn.sh stop-dfs.sh 备份 备份NameNode目录 ---------- 101,102操作 ----------------- hdfs- ...

  7. DRF框架在嵌套关系下实现嵌套对象字段的过滤

    当需要对关联对象的字段进行选择性显示时,在所对应的serializer类中声明引用的字段. 例如: class TrackSerializer(serializers.ModelSerializer) ...

  8. docker查看容器的ip地址

    查看Docker的底层信息. docker inspect 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 # 列出所有容器的IP地址docker inspect --forma ...

  9. Centos7上传文件和下载文件命令

    https://www.cnblogs.com/patrick-yeh/p/12922829.html 使用工具:SecureCRT 或 Xshell 步骤一:安装lrzsz软件,root权限下.安装 ...

  10. [ vue ] 监听v-model数据的变化,只要有变化就改变vuex的state值

    场景描述: 1. 注册弹出框是用 v-model 绑定数据  showRegisterModal  实现的,点击遮罩层框架会把  showRegisterModal=false 2.REGISTER按 ...