继承

●示例

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】938. Range Sum of BST 解题报告(Python & C++)

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

  2. 【LeetCode】739. Daily Temperatures 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 倒序遍历 栈 日期 题目地址:https://leetcode ...

  3. Subsequence(hdu3530)

    Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  4. 版本不兼容Jar包冲突该如何是好?

    一.引言 "老婆"和"妈妈"同时掉进水里,先救谁? 常言道:编码五分钟,解冲突两小时.作为Java开发来说,第一眼见到ClassNotFoundExceptio ...

  5. Spring Boot + MyBatis + MySQL 实现读写分离

    读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做. 读写分离有两种实现方式: 第一种是依靠中间件(比如:MyCat ...

  6. Java初学者作业——编写Java程序, 在控制台输入数字,计算表达式1-2+3-4……+(2*n-1)+2*n的结果。

    返回本章节 返回作业目录 需求说明: 编写Java程序, 在控制台输入数字 计算表达式1-2+3-4--+(2*n-1)+2*n的结果. 实现思路: (1)声明变量 n 和 sum,用于存储用户输入的 ...

  7. 编写Java程序,跑道长 50m,模拟 3 名学生同时在跑道跑步的场景 3名同学相当于3个线程对象

    查看本章节 查看作业目录 需求说明: 跑道长 50m,模拟 3 名学生同时在跑道跑步的场景 3名同学相当于3个线程对象 实现思路: 创建 Java 项目,在项目中创建StudentRunning类,该 ...

  8. Snack3 3.2 发布,轻量的Json+Jsonpath框架

    Snack3 是一个轻量的 JSON + Jsonpath 框架. 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表 ...

  9. vue 在实现关键字远程搜索时出现数据不准确的原因

    实现通过输入关键字查询项目, 页面搜索规则框部分 js部分 之前通过在data中定义一个变量,然后在methods中filterFn方法获取当时输入的值去后台请求数据,然后把请求的数据存放在state ...

  10. gitlab修改(重置)root用户密码

    gitlab修改(重置)root用户密码 1.使用root权限登录到服务器. 2.使用以下命令启动控制台:  gitlab-rails console production 该命令有时候启动比较慢,需 ...