JAVA 之 继承

简介: 1:继承的定义:   Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 2:关键字: extends :继承 3:格式形式: public class A extends B {}  A:代表子类   B:代表父类  4:子类可继承父类的public,protected成员。

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();

}
}

 

 

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

 

汽车有车牌号、品牌 属性

轿车有型号属性

客车有座位数属性

相关文章
|
5月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
2月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
135 1
|
3月前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
46 3
|
3月前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
71 2
|
3月前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
45 2
|
3月前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
53 1
|
4月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
3月前
|
Java 测试技术 编译器
Java零基础-继承详解!
【10月更文挑战第4天】Java零基础教学篇,手把手实践教学!
53 2
|
3月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
39 5
|
3月前
|
Java
java继承和多态详解
java继承和多态详解
56 5
下一篇
开通oss服务