吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2932|回复: 5
收起左侧

[Java 转载] 继承

[复制链接]
Simp1e 发表于 2022-3-2 13:43
本帖最后由 Simp1e 于 2022-3-2 13:48 编辑

(1).继承的基本语法结构
[Java] 纯文本查看 复制代码
//父类
public class Animal {
    public String name;
    public int age;
    public void chi(){
        System.out.println(this.name+"吃好吃的");
    }
    public void zou(){
        System.out.println(this.name+"走别人的路,让自己憋屈");
    }
}
//子类1
public class Person extends Animal{

    public void shuo(){
        System.out.println(this.name+"哇啦哇啦的说");
    }

}
//子类2
public class Pig extends Animal{

    public void hengHeng(){
        System.out.println(this.name+"哼哼的叫");
    }
    
}
//调用
public class Test {
    public static void main(String[] args) {
        Person p = new Person();
        p.name = "花花";
        p.chi();
        p.shuo();
        p.zou();
        Pig px = new Pig();
        px.name = "张博";
        px.chi();
        px.hengHeng();
        px.zou();
    }
}
//注意:继承并不是为了解决某个问题,而是为了优化程序代码结构而出现的
//java面向对象三大基本特性:继承 封装 多态

(2).继承的一些特性a. Java的继承是单继承----一个子类只能拥有一个父类,但是一个父类可以拥有多个子类    问题:如果一个类真的需要继承多个类的,并且拿到它所继承的类的方法时应该怎么办?
b.Java允许传递继承结构,在传递继承中,父类的元素(属性和方法)可以通过继承关系无限的传递下去
c.Java中任何一个类都必须有一个父类,如果没有显示声明,则默认继承自Object   注意:Object类是一切类的父类(根类-JDK自带的 super class),所以Object类中的方法所有类都有
d.继承结构中,创建子类对象的同时也一并会创建其父类的对象,并且它遵循先父后子的创建过程,当传递继承关系出现时,则该结构也会一并创建其上上级的父类   
注意:   
①.Java中的继承关系不宜过于复杂   
②.虚拟机构建父类对象时,默认会使用父类空参构造方法创建对象,如果父类中没有空参构造方法,子类默认报错,但是可以在子类的构造方法中通过super来进行父类指定构造方法的调用进行解决   
③.super和this无法同时存在,故此一个类中无论怎么使用this去调用其构造方法,总会有一个构造方法不写this或显示声明调用super
e.继承中,并不是所有的元素都可以继承,有一些是可以继承,有一些是不可以继承的   
访问范围修饰符和程序包:        程序包:相当于文件夹,方便于我们对于程序代码的分类管理        
注意:使用带有包结构管理的类,那么如果使用类和被使用类在同一个包结构下,则可以直接使用,如果包结构不同,则使用类必须导包以后才能使用被实用类        
导包的手段:
(1).在被使用类前,添加完整的包结构说明
(2).通过import语句导包,如果有多个类需要导包,则可以使用*,的方式来简化导包过程
(3).package和import同时出现时,package语句在import语句之前      
命名规范:(1).见名知意 (2).包的层级命名[[com|cn|org].[具体的公司名].[项目名]]                                com.oracle.oasys.具体的功能包名        访问范围修饰符:
        public > protected > 默认 > private
(3).重写当父类中某一些方法无法满足特定子类的需要时,那么该子类需要对某些方法进行重写
[Java] 纯文本查看 复制代码
//父类
public class Animal {
    public String name;
    public int age;
    public void chi(){//父类的等待被重写的方法
        System.out.println(this.name+"吃好吃的");
    }
    public void zou(){
        System.out.println(this.name+"走别人的路,让自己憋屈");
    }
}
//会产生重写的子类
public class Person extends Animal{
    public void shuo(){
        System.out.println(this.name+"哇啦哇啦的说");
    }
    public void chi(){//子类重写以后的方法
        System.out.println("我想吃海鲜,我想吃烧烤,我想吃各种好吃的!!!!");
    }
}
//没有产生重写的子类
public class Pig  extends Animal{
    public void hengHeng(){
        System.out.println(this.name+"哼哼的叫");
    }
}
//注意:重写仅仅影响重写所发生的子类,对于其父类和其他未重写的子类不会产生影响
重写和重载的区别

QQ浏览器截图20220302134111.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2022-3-2 15:23
@Simp1e 你这是自己写的吗?还是复制来的?不要一下刷这么多主体,这种完全可以合并到一起。
 楼主| Simp1e 发表于 2022-3-4 17:18
Hmily 发表于 2022-3-2 15:23
@Simp1e 你这是自己写的吗?还是复制来的?不要一下刷这么多主体,这种完全可以合并到一起。

这算是上课笔记吧,咋和一起啊,萌新不会啊

点评

编辑帖子,笔记里还是发编程求助区的讨论分类吧  详情 回复 发表于 2022-3-4 17:22
Hmily 发表于 2022-3-4 17:22
Simp1e 发表于 2022-3-4 17:18
这算是上课笔记吧,咋和一起啊,萌新不会啊

编辑帖子,笔记里还是发编程求助区的讨论分类吧
dyb1220 发表于 2022-8-5 11:01
光跟着老师后面学肯定是不够的,需要课下多多自学
sknbs 发表于 2022-8-5 23:39
感觉需要加点实际的例子
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表