继承详细讲解

简介: 继承详细讲解

继承:

不能被继承的父类成员:

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      方法

相关文章
|
6月前
|
Java C# C++
继承
继承
50 0
|
6月前
|
安全 Java 编译器
C++:继承
C++:继承
49 0
|
3月前
|
安全 Java 编译器
|
5月前
|
编译器 C++
C++中的继承
C++中的继承
46 1
|
6月前
|
编译器 数据安全/隐私保护 C++
C++继承
C++继承
23 1
|
6月前
|
安全 程序员 C++
C++之继承<1>【详解】
C++之继承<1>【详解】
|
存储 编译器 程序员
c++【继承】
C++ 继承,包括继承的概念和用法,菱形继承的产生,组合的介绍等丰富知识点,详细讲解,干货满满!
38 4
c++【继承】
|
12月前
|
程序员 编译器 C++
|
安全 Java 编译器
C++中的继承(超详细)
C++中的继承(超详细)
62 0