Java入门二(3)继承

6 篇文章 0 订阅
5 篇文章 0 订阅

封装

3.1 Java中的继承

1.继承的概念
继承是类与类的一种关系,是一种 “is a”的关系
例如狗是动物,我们就可以说成狗继承动物类。狗是动物类的子类、派生类,动物类是狗的父类、基类
注意:Java中的继承是单继承。和我们人一样,只有一个亲爹

2.继承的好处
子类拥有父类的所有属性和方法,private修饰的无效
实现代码的复用

3.语法规则
class 子类 extends 父类
例:class Dog extends Animal{ … }

demo

package com.sytest
// 父类 动物类
public class Animal{
	public int age;
	public String name;
	public void eat(){
		System.out.println("姓名为:"+ name + "年龄为:" + age + "的动物具有吃东西的能力");
	}
}
package com.sytest
// 子类 狗类
public class Dog extends Animal{}
package com.sytest
// 测试类
public static void main(String[] args){
	Dog dog = new Dog();
	dog.age = 10;
	dog.name = "xx";
	dog.eat();
}

3.2 Java中的方法重写

1.什么是方法的重写
如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法

2.语法规则
a.返回值类型
b.方法名
c.参数类型及个数
都要与父类继承的方法相同,才叫方法的重写

package com.sytest
// 子类 狗类
public class Dog extends Animal{
	public void eat(){
		System.out.println("年龄:" + age + " 狗是可以吃东西的");
	}
}

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

3.4 Java中的继承初始化顺序

继承的初始化顺序
1.初始化父类再初始化子类
2.先执行初始化对象中的属性,再执行构造方法中的初始化

3.5 Java中的final的使用

final关键字
使用final关键字做标识有“最终的”含义

final可以修饰类、方法、属性和变量
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被覆盖(重写)
final修饰属性:
(1 则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)
(2 或在构造方法中赋值(但只能选其一)
final修饰变量,则该变量的值只能赋一次值,即变为常量

3.6 Java中的super的使用

super关键字
在对象的内部使用,可以代表父类对象
例:
1.访问父类的属性
super.age
2.访问父类的方法
super.eat()

package com.sytest
// 子类 狗类
public class Dog extends Animal{
	public void eat(){
		System.out.println("年龄:" + age + " 狗是可以吃东西的");
	}
	public void method(){
		super.eat();
	}
}

super的应用
子类的构造过程当中必须调用其父类的构造方法
当我们创建子类对象的时候,程序会自动执行父类的构造方法。因为在子类的构造方法的执行过程当中执行了父类的构造方法,相当于隐式的在子类的构造方法当中写了 super(); 关键字,帮我们调用了父类的构造方法

如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类的无参的构造方法
如果显示的调用构造方法,必须在子类的构造方法的第一行
如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错

3.8 Java中的Object类 Ⅰ

Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。
Object类中的方法,适合所有子类

Object类中有几个比较重要的方法
1.toString()方法
在Object类里面定义toString()方法的时候返回的对象的哈希code码(对象地址字符串)
补充:哈希码是通过哈希算法生成的一个字符串,是用来唯一区分对象的。就像身份证号是用来区分我们每一个人的。

可以通过重写toString()方法表示出对象的属性
在这里插入图片描述
在这里插入图片描述

2.equals()方法
比较的是对象的“ 引用 ”是否指向同一块内存地址
Dog dog = new Dog()

但一般情况下比较两个对象时比较他们的值是否一致,所以要进行方法重写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值