tnblog
首页
登录

Java学习 - 继承与多态

107人阅读 2019/4/30 11:02 评论:0 手机 收藏 关注
分类: JAVA

1.继承

2.多态

3.构造方法

4.重载

5.重写

6.super与this的区别

7.static,final,abstract的用法

8.接口


一 什么是继承

如: 儿子继承父亲的财产

             继承就是由一个类,派生出一个个类,派生出的类具有上一级类的属性和功能,这种关系叫继承

             为什么要使用继承?   为了扩展子类的功能,简化代码开发

                1 提高编程的效率

                2 减少代码的重复使用

                3 提高代码的可读性和可维护性


语法:关键字 extends

class 子类名 extends 父类名
{
属性;
行为:
/*
它只继承了父类中 非私有属性和方法。
*/
}

特点规则:java只支持单继承,一个子类只能有一个父类

例:A extends B,B extends C;


    不可以写

 A extends B,C; A extends B extends C;
 
 继承的具体使用:
     子类可以继承父类中的一般属性和方法,但是除private以外
     子类可以再继承关系中拥有自己的属性和方法
     
 继承的特征:
     1 必须有extends关键字
     2 子类在调用本类的构造方法时,必须先调用父类的构造方法
     3 子类默认父类的隐式构造,如果父类没有,只有有参构造,则必须调用父类的构造方法
     4 调用父类中属性或方法必须使用super关键字
 分析:会继承父亲的所有事物吗?比如儿子会继承父亲的名字、相貌等吗

二 什么是多态

多态就是一般类中定义的属性和行为,被特殊类继承后,可以具有不同的数据类型或表现出不同的行为

继承的体现就是多态


三 什么是构造方法

概念: 方法名与类名相同,并且没有返回值(包括void)

作用: 

1 在创建对象的时候调用

2 给属性初始化(赋值)

特点:

1 如果不显示声明一个构造方法,系统或自动生成一个

2 如果显示声明一个有参构造方法,那么系统将不会自动创建无参的构造方法


四 什么是重载 重载和重写体现了多态

在同一个类中,如果出现方法名相同,参数的类型,个数,顺序不同,就叫做重载。(同名不同参)

常见的,构造方法的重载。

   什么是重写

在子类中,如果出现了与父类中完全相同的方法(修饰符可以不同,但是子类的修饰权限必须大于等于父类的修饰权限),就是方法的重写

public > protected > default > private

注意:调用的始终都是重写之后的方法。


五 子类对象的产生过程

创建子类对象,一定先执行父类构造方法

super在子类构造方法中调用父类的有参数的构造方法


六 super的作用

1 在子类的构造方法中,第一行使用,默认调用父类无参数构造方法,也可以调用有参数的

super()  super(参数列表)

2 在子类中,使用super相当于父类的对象,可以调用父类中的所有非私有属性和方法。private除外


七 this的作用

1、在当前类中使用,相当于是当前类的对象,可以调用当前类的属性和方法,private除外

2、在当前类的构造方法中,第一行使用,可以调用当前类的构造方法。


八 static的作用

1 static关键字可以修饰变量和方法,修饰变量叫做 静态变量,修饰方法叫做静态方法。

2 没有被static修饰的方法和变量,实例变量和实例方法

注意:

1、被static修饰的变量和方法,属于类的,在内存中只分配一块存储空间,所有对象都共享此空间。所以被static修饰的方法和变量可以直接使用类名调用。

2、在静态方法中,只能使用静态变量和调用静态方法。

3、在静态方法中,不能使用this关键字


九 final的用法

final关键字可以修饰类,方法,变量

1 修饰变量,那么就是常量

final float PI=3.14f;


2 修饰类,那么该类不能被继承

final class Person
{
}
//错误
class Student extends Person
{
报错
}

3 修饰方法,那么该方法不能被重写。


十 abstract的用法

抽象类

对象是通过类进行描述的。 当一个类的信息不足以描述一个对象的时候,这个类就是抽象类。

    在程序中使用 abstract关键字修饰的类就是抽象类

语法:

abstract class 类名
{
属性;
行为;
}


抽象方法

只有方法的声明,没有方法体

语法1:

     abstract 修饰符 返回值 方法名(参数列表);

语法2:

     修饰符 abstract 返回值 方法名(参数列表);

注意:

1 在抽象类中,可以有抽象方法。也可以没有

2 如果一个类中出现了抽象方法,那么这个类一定是抽象类。

3 抽象类不能直接创建对象,只能使用子类进行创建

4 子类继承了抽象类,那么必须重写父类中的所有抽象方法。除非子类本身也是抽象类。


十一 接口

提供一种标准和规范。供使用者调用。

在程序中,使用关键字 interface修饰的 就是接口,接口就是抽象方法和常量的集合。

语法:

修饰符 interface 接口名
{
抽象方法;
常量(少用)
}


注意:接口与 类的级别是相同的。

接口的规则:

1 接口可以实现多重继承

interface 接口1 extends 接口2,接口3,接口4...
{
}

注意:1 接口的使用,只能通过类进行实现,语法格式:

class 类名 implements 接口1,接口2,接口3、、、
{
// 类实现了接口,必须重写该接口中的所有抽象方法,除非当前类也是抽象类。
}










评价
sometimes ever,sometimes never
文章
6
评论
8
分类
16
粉丝
16
{{item.ArticleTitle}}
{{item.BlogName}} : {{item.Content}}