1:继承的定义:

Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

2:关键字: extends :继承

3:格式形式: public class A extends B {}  A:代表子类   B:代表父类

4:子类可继承父类的public,protected成员。

5:java中的继承是单继承的,具有单根性,传递性。所以一个类就只有一个父类。

6:方法重写: (子类对父类方法的重写)

其规则:

1:子类的返回值类型,方法名,参数列表必须和父类的相同;

2:访问修饰符必须大于父类修饰符的范围;

3:子类重写的异常不能抛出的比父类多。

与之区别的   方法重载

规则:在一个类中有两个及以上的方法名相同,参数列表不同的。

7:super 关键字:父类 超类

8:final 关键字

1:final类:没有子类,不能被继承

2:final方法:不能被重写

3:final常量:常量值不能被修改

9:继承的优点:

1: 代码的重用性

2:父类的方法和属性可以用于子类

3:设计应用程序变得简单

4:子类可继承父类的属性和方法

10:实例化过程

:继承的练习:

1. 创建宠物类,宠物有名称,健康值,与主人亲密值的属性

2. 创建狗类,狗有名称,健康值,与主人亲密值,品种的属性

3. 创建企鹅类,企鹅有名称,健康值,与主人亲密值,性别的属性

4. 创建狗对象,打印出狗的基本信息

5. 创建企鹅对象,打印企鹅的基本信息

6. 添加宠物叫的方法,测试打印狗和企鹅的叫的方法,如狗是“汪汪汪”的叫,企鹅是“咕咕咕”的叫

分析:

宠物类  狗类  企鹅类   狗类和企鹅类继承了宠物类的名称,健康值,与主人亲密值的属性

代码:

package com.lovo.exercise;

/**
* 宠物类
*
* @author Administrator
*
*/
public abstract class Pet {

private String name;
private int health;
private int love;

public Pet() {
super();
System.out.println("Pet构造器中");
}

public Pet(String name, int health, int love) {
this.name = name;
this.health = health;
this.love = love;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getHealth() {
return health;
}

public void setHealth(int health) {
this.health = health;
}

public int getLove() {
return love;
}

public void setLove(int love) {
this.love = love;
}

public String toString() {
return "Pet [name=" + name + ", health=" + health + ", love=" + love+ "]";
}

public abstract void shout();

}

//狗类

package com.lovo.exercise;

/**
* 狗
*
* @author Administrator
*
*/
public class Dog extends Pet {

private String strain; // 品种

public Dog() {
System.out.println("Dog构造器中");
}

public Dog(String name, int health, int love, String strain) {
super(name, health, love);
this.strain = strain;
}

public String getStrain() {
return strain;
}

public void setStrain(String strain) {
this.strain = strain;
}

public String toString() {
return super.toString() + "\nDog [strain=" + strain + "]";
}

public void shout() {
System.out.println("汪汪汪");
}
}

//企鹅类

package com.lovo.exercise;

/**
* 企鹅
*
* @author Administrator
*
*/
public class Penguin extends Pet {
private String sex;

public Penguin() {
}

public Penguin(String name, int health, int love, String sex) {
super(name, health, love);
this.sex = sex;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

@Override
public String toString() {
return super.toString() + "\nPenguin [sex=" + sex + "]";
}

public void shout(){
System.out.println("咕咕咕");
}
}

//测试

package com.lovo.exercise;

public class Test {

public static void main(String[] args) {

Dog dog = new Dog("小白", 88, 99, "雪拉瑞");
System.out.println(dog);
dog.shout();
System.out.println("**********************");
Penguin pen = new Penguin("Q妹妹", 88, 99, "女");
System.out.println(pen);
pen.shout();

}
}

二、使用抽象类抽象方法完成

汽车有车牌号、品牌 属性

轿车有型号属性

客车有座位数属性

JAVA 之 继承的更多相关文章

  1. java基础-继承

    浏览以下内容前,请点击并阅读 声明 一个由其他类继承的类叫子类(也叫继承类,扩展类等),该类继承的类叫父类或超类.除了Object类意外,所有的类都有切仅有一个父类,如果一个类没有用extends关键 ...

  2. Java面向对象㈡ -- 继承与多态

    Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...

  3. java的继承机制

    这次我想深入探究以下java里类的继承机制.       我们知道,继承是java设计里的一个失败的地方.高司令说过:如果让他重新设计java的话,他会把继承去掉.而java里继承到底怎么了,会这么不 ...

  4. Java面向对象 继承(下)

     Java面向对象   继承(下) 知识概要:               (1)抽象类 1.1 抽象类概述                            1.2 抽象类的特点       ...

  5. Java面向对象 继承(上)

       Java面向对象 继承 知识概要:         (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...

  6. Java的继承、封装与多态

    Java的继承.封装与多态 基本概念 面向对象OO(Object Oriented):把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象. 对同类对象抽象出共性,即类. 比如人就是一个类 ...

  7. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  8. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  9. JAVA通过继承线性表来实现有序表

    1,对于线性表而言,里面的元素是无序的,可以随意地将新元素增加到线性表中而不需要考虑该元素在线性表中的位置.但是,对于有序表而言,其中的元素是按照某种方式进行排序的,因此在有序表中插入元素时,需要按照 ...

  10. java中继承thread类的其他类的start()方法与run()方法

    java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...

随机推荐

  1. JAVA服务器与C#客户端的通信技术调研

    JAVA服务器与C#客户端的通信技术调研 研究背景及目的: ARPG项目的需求:需要将现有的服务器从C++的编写平台换为java语言.在对需求进行分析的过程中,发现几点需要研究实现的问题 java与c ...

  2. 单元测试工具Numega BoundsChecker

    1 前言 我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法. NuMega是一个动态测试工具,主要应用于白盒测试.该工具的特点是学习简单.使用方便.功能 ...

  3. Python学习-20.Python的Urllib模块

    除了 Http 模块可以模拟 Http 请求外,使用 Urllib 模块也是可以模拟 Http 请求的,只不过功能相对弱一点. import urllib.request opener = urlli ...

  4. Get User CustomNotificationAddresses

    select pv.StringValue, * from tbl_Identity    i left join tbl_PropertyValue pv on pv.ArtifactId=conv ...

  5. PLSQL(PL/SQL)集成Team Foundation Server (TFS),实现数据库代码的版本管理

    PL/SQL是面向Oralcle数据库的集成开发环境,是众多Oracle数据库开发人员的主要工具.由于PL/SQL(百度百科)不仅是一种SQL语言,更是一种过程编程语言,在项目实施过程中,会积累大量除 ...

  6. Windows下常用的100个CMD指令以及常见的操作

    gpedit.msc—–组策略 2. sndrec32——-录音机 3. Nslookup——-IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具. 它在 Wind ...

  7. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...

  8. BitAdminCore框架应用篇:(四)核心套件querySuite按钮功能

    索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/coo ...

  9. VS2017集成FastReport.Net并将模板保存到数据库

    本着开发与实施分离的思想,设计一个通用的报表设计窗体显得尤为重要(下图为图一): 要求与优点: I.报表设计窗体支持所有单据调用,一种单据支持多个打印模板. II.报表模板存储在数据库中.一是支持客户 ...

  10. Algebraic Kernel ( Arithmetic and Algebra) CGAL 4.13 -User Manual

    1 Introduction Real solving of polynomials is a fundamental problem with a wide application range. T ...