IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> JAVA——面向对象——继承extends -> 正文阅读

[移动开发]JAVA——面向对象——继承extends

JAVA——面向对象——继承extends

一、继承的概念

1.继承的特点:
1.构造方法不能被继承(构造方法方法名称必须跟类名一致)
2.一个父类可以有多个子类,一个子类只能有一个父类
3.可以多重继承,也就是A继承B,B继承C
4.私有的属性和方法不能被继承

2.继承的优缺点:
优点:提高代码的复用性,降低程序的冗余度
缺点:继承破坏了封装性,继承提高了代码的耦合度
在项目开发的时候,尽快能的实现项目功能代码的高内聚,低耦合

3.继承时方法的重写:
子类继承父类,当父类的方法无法满足子类的需求时,在子类中对父类的方法重新定义,只改变方法体。
子类对象调用的是被重写之后的方法。

4.重写和重载的区别:
1.位置不同
方法的重载发生在一个类型
方法的重写方法在有继承关系的子类里面
2.写法不同
方法的重载-多个方法方法名相同,参数列表不同
方法的重写-子类重写父类的方法,方法名称和参数列表必须跟父类的方法一致

5.final关键字:
final可以定义常量,常量的值为最终值,不可以被修改
final可以修饰类,被final修饰的类为最终类,没有子类,不可以被继承
final可以修饰方法,被final修饰的方法为最终方法,不能被重写

6.super关键字:
super只能出现在子类中,用来访问父类的成员
super调用父类的构造方法
必须写在子类构造方法的第一行
在子类构造方法的第一行,默认有super()
super调用父类的普通方法和成员属性
在子类的任意方法中通过 super.属性 访问父类的属性
在子类的任意方法中通过 super.方法() 调用父类的方法
super不能访问父类私有的属性和方法

二、继承的举例

例:设计一个父类类叫Animal01,这个类里有三个属性:名字、颜色、年龄。
设计两个子类Dog01、Cat01分别继承父类Animal01的属性和方法
设计一个主类Lesson01,实例化两个子类Dog01、Cat01对象,查看对象的属性和方法。
类Animal01代码:

public class Animal01 {
	
	//动物有以下几个属性:名字、颜色、年龄
	String name;
	String color;
	int age;
	
	//动物有吃饭的方法(行为)
	public void eat() {
		System.out.println("吃饭。");
	}
	
	//动物有跑步的方法(行为)
	public void run() {
		System.out.println("跑步。");
	}
	
	//构造方法,用于初始化动物的属性
	public Animal01(String name,String color,int age) {
		this.name = name;
		this.color = color;
		this.age = age;
	}
}

类Dog01代码:

public class Dog01 extends Animal01{

	//初始化狗子的属性
	public Dog01(String name, String color, int age) {
		super(name, color, age);
	}
	
	/**
	 * 方法的重写(子类把父类的方法重写一遍,改变方法体)
	 * 当父类的方法无法满足子类的需求时,在子类中对父类的方法进行重写
	 * 子类对象调用的是重写之后的方法
	 * 
	 */
	
	//狗子有吃骨头的方法(重写了继承自父类Animal01类中的吃饭方法:重写-方法名一样,方法内容改变)
	public void eat() {
		System.out.println("狗吃骨头");
	}
	//狗子有伸舌头跑步的方法(重写了继承自父类Animal01类中的跑步方法:重写-方法名一样,方法内容改变)
	public void run() {
		System.out.println("狗伸着舌头跑步");
	}
	//狗子有看家的方法,自身特有方法,非继承的方法
	public void lookHome() {
		System.out.println("看家。");
	}
	
	
}

类Cat01代码:

public class Cat01 extends Animal01{
	
	//定义猫猫类特有的属性-性别(非继承而来)
	String sex;
	
	//初始化猫猫的属性
	public Cat01(String name, String color, int age, String sex) {
		super(name, color, age);
		this.sex = sex;
	}
	
	//猫猫有吃鱼的方法(重写了继承自父类Animal01类中的吃饭方法:重写-方法名一样,方法内容改变)
	public void eat() {
		System.out.println("猫吃鱼。");
	}
	
	//猫猫有走猫步的方法(重写了继承自父类Animal01类中的跑步方法:重写-方法名一样,方法内容改变)
	public void run() {
		System.out.println("猫走猫步。");
	}
	
	//猫猫有抓老鼠的方法,自身特有方法,非继承的方法
	public void catchMouse() {
		System.out.println("抓老鼠。");
	}
}

主类Lesson01代码:

public class Lesson01 {

	public static void main(String[] args) {

		//new一个狗狗对象
		Dog01 d1 = new Dog01("狗子一号","黑色",3);
		
		//new一个猫猫对象
		Cat01 c1 = new Cat01("猫猫一号","白色",3,"母");
		
		//查看属性
		System.out.println("狗狗的姓名是"+d1.name+",颜色是"+d1.color+",年龄是"+d1.age);
		System.out.println("猫猫的姓名是"+c1.name+",颜色是"+c1.color+",年龄是"+c1.age+",性别是"+c1.sex);
		
		//调用方法
		d1.eat();
		d1.run();
		d1.lookHome();
		
		c1.eat();
		c1.run();
		c1.catchMouse();
	}
}

运行Lesson01结果:
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:22:54  更:2022-04-04 12:24:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:49:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码