继承详细讲解

继承:

不能被继承的父类成员:

1.私有成员

2.子类与父类不在同包使用默认访问权限的成员

3.构造方法

访问修饰符protected可以修饰属性和方法、本类、同包、子类可以访问
方法重写:

重写方法和被重写方法必须具有相同的方法名和参数列表

重写方法的返回值类型必须和被重写的方法的返回值类型相同或是其子类

重写方法不能缩小被重写方法的访问权限

overriding:在子集中,根据需求对父级继承的方法进行重新编写,以实现子类需求

先属性后方法

super关键字:
使用super关键字super调用父类公共属性及方法 

public class AppleTree extends Crop {
            //… … 省略private属性定义
            public AppleTree(String brand) {
                //super(参数)在子类构造方法中调用且必须是第一句
                super("苹果树",1,0, 2,100);  //访问直接父类的构造方法
                this.brand = brand;
            }
        }

语法:super.<父类属性/父类方法>;

1.super只能出现在子类的方法和构造方法中 2.super调用构造方法时,只能是第一句 3.super不能访问父类的private成员

继承中的构造方法:

构造方法中不允许同时出现this和super语句调用构造方法

构造方法:不能被继承,因此不能重写
简述方法重写的规则

1.方法名相同

public void fangfa(){
    System.out.println("父类方法")
}
public void fangfa(){
    System.out.println("子类重写方法");
}

2.参数列表相同

public void fangfa(Sting name){
    System.out.println("父类方法")
}
public void fangfa(Sting name){
    System.out.println("子类重写方法");
}

3.返回值类型相同或者是其子类

public Object fangfa(Sting name){
    System.out.println("父类方法")
}
public volatile fangfa(Sting name){
    System.out.println("子类重写方法");
}

4.访问权限不能严于父类

Object fangfa(Sting name){
    System.out.println("父类方法")
}
public volatile fangfa(Sting name){
    System.out.println("子类重写方法");
}

Java 虚拟机按照先父类后子类的顺序执行一系列的构造方法

父类属性 →父类构造方法→子类属性→子类构造方法

访问修饰符   本类   同包      子类     其他

Private        可用   不可用   不可用   不可用

默认修饰符    可用   可用     不可用   不可用

Protect        可用   可用     可用     不可用

Public         可用   可用     可用     可用

两种   全局变量和局部变量   

全局变量所有方法可用

局部变量  声明的方法内可用

静态-方法区(类)

全集变量(变量)-堆(对象)

局部变量-栈(方法)

方法里,不可以定义static变量,即:类变量不能是局部变量

常量,不能重新赋值,必须在声明时赋值

静态代码中不允许使用全局变量

静态方法(类方法):使用static关键字修饰的方法

实例方法:未使用static关键字修饰的方法

使用Static修饰与非private修饰的类成员有何不同?

Static、非private修饰

非Static、private修饰

属性

类属性、类变量

实例属性、实例变量

方法

类方法

实例方法

调用方法

类名.属性

类名.方法()

对象.属性

对象.方法()

对象.属性

对象.方法()

归属

单个对象

Class       类

Object     对象

Stsic       静态

Final       最终的

Private     私有的

Public      公共的

Protect     保护

Extend      继承

Super       超越

Override     重写

Constructor   构造

Overload     重载

Abstract      抽象

Main        主要的

Instance      实例

Method      方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

困困的小熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值