Java类与对象方法重载 访问修饰符 方法继承

类与对象的关系

  类是抽象的概念,仅仅是一个模板,比如说:“人”。

  对象是一个你能够看得到、摸得着的具体实体。

  类定义了对象将会拥有的特征(属性)和行为(方法)
  
  类是对象的类型,对象是类的实例

类的使用步骤

构造方法

构造方法作用就是对类进行初始化。每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认不带任何参数的构造方法。

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

例子如下:

class Person //人类{

public Person(String n,int a) //构造方法

{


name = n; age = a;

}


private string name;


private int age;

}

public static void main(String[] args){

Person p = new Person("张三",14);//这就是作用

}

new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法。

Hello hello = new Hello(“hi”);这个是调用Hello的有参数构造方法。

在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上。

如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么要强调写了有参数的构造方法就最好加一个无参数的构造方法。

方法重载

在Java程序中,如果同一个类中存在两个方法同名,方法的签名(参数个数、参数类型、类型排列次序)上也一样,将无法编译通过。

但在Java中多个方法重名是允许的,只要保证方法签名不同即可,这种特性称为方法重载(overload)。

方法重载需遵循如下两条规则:

方法名相同;

参数列表(个数、类型、顺序)不同;

注意:返回值不影响方法重载。

构造方法也可以重载 。

访问修饰符

Java中定义了private(私有的)、protected(受保护的)和public(公共的)的访问修饰符,同时也定义了一个缺省的访问级别,用于声明类、属性、方法的访问权限。

1、使用public访问修饰符,类的成员可被同一包或不同包中的所有类访问,也就是说,public访问修饰符可以使类的特性公用于任何类;

2、使用protected访问修饰符允许类本身、同一包中的所有类和不同包中的子类访问;

3、如果一个类或类的成员前没有任何访问修饰符时,它们获得缺省的访问权限,缺省的可以被同一包中的其他类访问;

4、private访问修饰符是限制性最大的一种访问修饰符,被声明为private的成员只能被此类中的其他成员访问,不能在类外看到。

在这里插入图片描述

Java中的继承

继承是Java面向对象编程技术的一块基石,它允许创建分等级层次的类。运用继承,可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承。

被继承的类称为父类

继承父类的类称为子类

执行继承时,子类将获得父类的属性,并具有自身特有的属性。

extends关键字用于继承类。声明一个继承父类的类的通常形式如下:

class 父类 {
}
class 子类 extends 父类 {
}

注意:

没有extends,默认父类为Object

只能有一个父类,即单继承

子类继承父类的全部成员,除了private成员

子类与父类不在同包,使用默认访问权限的成员不能被继承

构造方法不能被继承

在这里插入图片描述

继承的特性:

子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。

Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:

声明类:

final class 类名 {//类体}

声明方法:

修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}

构造方法的继承

子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值