继承(extends)

两个类的属性、方法高度相似---->继承(解决代码复用性)

从多个相似的类中抽象出父类,在父类里面定义这些重复的属性和方法,子类不需要重复定义,只需要通过extends继承父类就行

 子类也可以有它自己的子类

1.子类继承了父类的所有属性,但是私有属性和方法子类不能直接访问【可通过公共的方法访问】

 到时候就可以直接调用这个方法来给父类的私有属性赋值

2.子类必须调用父类的构造器完成父类的初始化

创建一个子类对象的时候,父类的无参构造器也被调用了(先调用父类,后调用子类)

3.创建子类对象的时候,不管子类用哪个无参构造器,都默认调用父类的无参构造器【如果父类没提供无参构造器,必须在子类的构造器中用supper指定一下用哪个构造器完成父类的初始化。否则编译不通过】  

4.如果希望显式的调用一下父类的某个构造器,可以显示的去调用(不写super就是默认调用无参构造器)        【super(参数列表)】 

子类构造器里面super的参数列表和父类的哪个构造器的参数列表对应,就调用的哪个父类的构造器

5.super用的时候必须放在构造器第一行(super只能在构造器里面用)

6.super和this不能共存在一个构造器(这俩都得在第一行) 

7.Java中所有类都是object的子类

8.父类构造器的调用不局限于直接的父类,将一直追溯到最顶级的父类(object类)

9.子类只能继承一个父类(直接继承),Java中的单继承机制

【怎么让a类继承b类和c类?   让a继承b,b再继承c】 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用继承extends关键字的Java代码编写例: ```java // 定义一个类Animal class Animal { protected String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + "正在吃东西"); } } // 定义一个类Cat,继承自Animal类 class Cat extends Animal { public Cat(String name) { super(name); } public void meow() { System.out.println(name + "正在喵喵叫"); } } // 定义一个类Dog,继承自Animal类 class Dog extends Animal { public Dog(String name) { super(name); } public void bark() { System.out.println(name + "正在汪汪叫"); } } // 主函数入口 public class Main { public static void main(String[] args) { Cat cat = new Cat("Tom"); cat.eat(); // 输出:Tom正在吃东西 cat.meow(); // 输出:Tom正在喵喵叫 Dog dog = new Dog("Jerry"); dog.eat(); // 输出:Jerry正在吃东西 dog.bark(); // 输出:Jerry正在汪汪叫 } } ``` 在上面的例中,我们定义了一个类Animal和两个类Cat和Dog。类Cat和Dog继承类Animal的属性和方法,通过extends关键字实现了继承类可以覆盖类的方法,同时还可以定义自己特有的方法。通过继承和多态性,我们可以实现代码的复用和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java_extends相关,类单继承,为什么接口可以多继承](https://blog.csdn.net/monicateacat/article/details/131084257)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java 面向对象编程(二)——继承extends关键字,protected修饰符,super关键字](https://blog.csdn.net/weixin_50080344/article/details/124484748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值