博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始学java (继承)
阅读量:6772 次
发布时间:2019-06-26

本文共 2341 字,大约阅读时间需要 7 分钟。

继承

  继承是面向对象的三大特征之一,也是实现软件复用的一个手段。java的继承具有单继承的特点(简单理解一个儿子只能有一个爸爸),每个子类只有一个直接父类,但是一类可以有多个子类(除final类型的类)。

  

  继承的特点:

    java的继承通过extends 关键字来实现,实现继承的类被称为子类,被继承的类被成为父类,有的也成为基类、超类。如上图

/**  * 作为父类的类  * @author GMZ  *  */ public class ClassParent {
    public String name;     public String age;          public ClassParent(){}          //重载的构造方法     public ClassParent(String name){
        this.name = name;     }          //重载构造方法     public ClassParent(String name , String age){
        this(name);         this.age = age;     }          public void eat(){
        System.out.println("parent---------------->eat_method");     }     // 重载 eat方法     protected String eat(String name){
        System.out.println("parent---------------->eat_method"+name);         return this.name;     } }
/** * 作为子类的类   用关键extends来实现 继承 * @author Administrator * */public class ClassPosterity extends ClassParent {        //通过super调用父类的构造方法 来为父类的属性赋值    public ClassPosterity(String name ,String age){            super(name,age);    }    //@Override代表的是重写   继承的子类重写父类的方法    @Override    public void eat(){        System.out.println("posterity---------------->eat_method");    }}

 这里面出现了几个关键字和重写还有方法的重载,我们一个一个来说。

 方法的重写:

  子类可以根据自己的需求对父类继承的方法进行重新编写,成为方法的重写或者说是方法的覆盖。重写有几个特点

  1. 重写方法和被重写方法必须具有相同的方法名。

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

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

  4.重写方法不能缩小被重写方法的访问权限。(例如:public不能是private)

  方法的重载:

  同一个类中多个方法名相同,参数列表不同为方法的重载。重载有几个特点:

  1.方法的重载只在本类中。

  2.方法的重载只与方法名有关与其他无关(返回值类型,参数列表,访问修饰符)

  super关键字

   super代表当前对象的直接父类对象的默认引用。在子类中可以用super关键字来访问父类中的成员。它也有几个特点

   1.super必须出现在子类(子类的方法和构造方法)中,而不是其他位置

   2.可以访问父类的成员,如父类的属性、方法、构造方法。

   3.super无法访问private修饰的成员。

 抽象类

  在类中还有只用特殊类抽象类。

  

/**  * 抽象类  关键子 abstract  * @author GMZ  *  抽象类是不能被实例化的。  */ public abstract class ClassAbstract {
    public  String name;     public String age;               public void eat(){
        System.out.println("--------------------->eat");     }          //抽象方法,抽象方法没有方法体 ,当子类(非抽象子类)继承这个类时必须重写这个方法,否则无法实例化,除非子类也是抽象类。     //抽象类继承抽象类是可以不用实现抽象方法的     public abstract void playLOL(); }

  抽象类和抽象方法的特点如下:

  1.抽象类和抽象方法都能通过abstract关键字来修饰。

  2.抽象类不能被实例化,抽象类中可以没有或者有一个或者多个抽象方法,甚至全部方法都是抽象方法。

  3.抽象方法只有能方法声明,没有具体的代码块(方法实现),有抽象方法的类必须声明为抽象类,当一个类继承了抽象类,那么它必须重写父类中所有的抽象方法才能被实例化,否则子类还是一个抽象类。

  

转载于:https://www.cnblogs.com/Cgosling/p/9943336.html

你可能感兴趣的文章
深圳APP开发婚恋社交App
查看>>
ES6 -- String 扩展方法解析
查看>>
算力大战是BCH最坏的一种处理方式
查看>>
Java 设计模式(五)《装饰器模式》
查看>>
Mob之社会化分享集成ShareSDK
查看>>
node识别es6的 import/export
查看>>
JavaScript中浏览器兼容代码
查看>>
SpringCloud微服务云架构构建B2B2C电子商务平台之-(九)服务链路追踪(Spring Cloud Sleuth)...
查看>>
(五) 整合spring cloud云服务架构 - 云架构代码结构构建
查看>>
jeesz分布式架构-分布式高可用
查看>>
Java数据库的存取技术
查看>>
很详细的vsftp配置
查看>>
查找命令--find和locate
查看>>
2012R2分层存储 笔记
查看>>
python 安装与模拟登录_网站测试
查看>>
企业F5_BIGIP负载均衡应用解决方案
查看>>
linux系统监控工具
查看>>
我的友情链接
查看>>
MySQL优化概述
查看>>
查看当前centos版本与redhat对应的版本的命令
查看>>