继承extends,inherit

上次我们了解到了原型链的应用,我们发现了这样的继承方式会造成很多我们不想去继承的属性也会继承过来,这样的去使用它效率是非常低下的。

apply和call也勉强可以算是继承的一种方式。相对于上一种方式,这种方式的继承很大的提升了性能。但是这个方式不能使用它的原型,且每次运行都会默认去执行两个方法。

下面是我们的一种方法,
通过直接操作对象属性去实现,这样的效率比较低下。

在这里插入图片描述
Target继承Origin的属性,这样对象一旦创建出来就会直接拥有父类祖先Origin。
这也是一个function。需要在声明后去执行才会进行操作。
在这里插入图片描述
然而这些方法还有一个比较致命的缺陷那就是这样继承会导致一个子类修改父类,另外一个子类的属性也会跟着改变。、

圣杯模式,是如今使用的方式
中间加了一个空的父类后,这个缺陷得以完善。
在这里插入图片描述
以此可以得到封装函数。

在这里插入图片描述
最后一条为找到真正继承于谁的作用的函数。

下面是一个使用继承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、付费专栏及课程。

余额充值