java高级特性(继承)

cgosling      2022-04-18     494

关键词:

继承

  继承是面向对象的三大特征之一,也是实现软件复用的一个手段。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.抽象方法只有能方法声明,没有具体的代码块(方法实现),有抽象方法的类必须声明为抽象类,当一个类继承了抽象类,那么它必须重写父类中所有的抽象方法才能被实例化,否则子类还是一个抽象类。

  

















































高级类特性----接口(intertface)

接口 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。 接口(interface)是抽象方法和常量值的定义的集合。 从本质上讲,接口是一种特殊的抽... 查看详情

面向对象高级编程

1.多重继承1)在python中,一个类可以同时具备多种特性每种特性可以定义为一个类,通过类中的方法来表达特性,作为他的子类可以继承他的特性,并在此基础上面还具有自己的特性可以从其他继承类的方法中实现2)一个子类即... 查看详情

educoder(头歌)平台java实训作业答案(代码片段)

...g类2-8Java面向对象-包装类2-9Java面向对象-异常处理类3-1Java高级特性-IO流(上)3-2Java高级特性-IO流(下)3-3Java高级特性-集合框架3-4Java字符串与集合练习——词频统计3-5Java高级特性-多线程基础(1)使用线... 查看详情

java高级特性--自动拆箱-装箱,枚举类型

基本数据类型转换为引用类型对象一个自动装箱的例子Integeri=10;相当于Integeri=newInteger(10); 一个自动拆箱的例子Integerm=10;intn=m;相当于n=m.intValue(); 枚举类型 所有枚举类型都继承了Enum类 枚举值都是public staticfinal的 ... 查看详情

继承性—javascript面向对象高级

##继承性##  js不是一门完全是面向对象的语言,它没有专门实现对象继承的机制,但是可以通过语法层面实现对象的继承,要实现继承可以通过以下几种方式实现继承。 (这里也可以通过ES6中的class语法实现继承,更接... 查看详情

高级oop特性(代码片段)

PHP不支持的高级OPP特性 PHP不支持通过函数重载实现多态PHP不支持多重继承PHP不支持根据所修改数据类型为操作符赋予新的含义对象克隆克隆实例 在对象前面添加clone关键字来克隆对象,对象的属性值都被继承,克隆的对... 查看详情

浅谈java三大特性之继承

...构造函数问题others前言类的继承性是面向对象语言的基本特性,多态性前提是继承性。Java支持继承性和多态性。——Java从小白到大牛继承:三大特性之一,关键词:extends简单用伪代码去介绍一些假设需要定义个student类pub... 查看详情

java三大特性之一继承

...ava是跨平台,健壮性的语言他拥有封装,继承,多态三大特性继承:首先,子类继承父类之后,子类可以拥有父类的的方法,构造方法不能被继承使用场景:如果我们定义好几个类,每个类都拥有相同的方法或者参数,然后我们... 查看详情

java特性之继承

继承这一特性是面向对象的重要概念,好处就是提高代码的复用,节约开发时间。在java中继承是指在父类的基础上扩展功能,继承中分为子类和父类。类有两种重要成员:成员变量和方法。java中子类通过关键字extends可以获得父... 查看详情

java学习脚印5:继承特性及特殊类(代码片段)

JAVA学习脚印5:继承特性及特殊类本节将学习类的继承特性及一些特殊类,本节所述实例中的类设计参考自《java核心技术》。1.java继承特点 · java中使用关键字extends表示继承,所有的继承都是公有public继承(区别于c++... 查看详情

高级类特性----final关键字

final关键字 在Java中声明类、属性和方法时,可使用关键字final来修饰。 final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。 final标记的类不能被继承。提高安全性,提高程序的可读性。 final标记的方法不能被子类... 查看详情

类的三大特性(继承,封装,多态)

类的三大特性之继承classAnimals:a_type="哺乳动物"def__init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdefeat(self):print("%siseating...."%self.name)classPerson(Animals):a_type="高级动物"deftalk(self):pr 查看详情

java中的继承性特性

  继承性是java中的第二特性之一。而继承性最为关键的地方为:代码重用性的问题,利用继承性可以从已有的类中继续派生出新的子类,也可以利用子类扩展出更多的操作功能。  继承性的实现代码为:class子类 extends&n... 查看详情

java随笔:三大特性之继承

Java三大特性之继承一、介绍  笔记重点:构造器、protected关键字(这个自行查阅)、向上转型、private关键字(继承非常重要的要点)   复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够... 查看详情

java的3大特性

java的3大特性  1.继承:    * 继承是从已有类得到继承信息创建新类的过程。    * 提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。    * 继承让变化中的软... 查看详情

java面向对象概述和三大特性

   Java是面向对象的高级编程语言,类和对象是Java程序的构成核心。围绕着Java类和Java对象,有三大基本特性:封装是Java类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方... 查看详情

java面向对象概述和三大特性

   Java是面向对象的高级编程语言,类和对象是Java程序的构成核心。围绕着Java类和Java对象,有三大基本特性:封装是Java类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方... 查看详情

java高级特性—锁

1).synchronized   加同步格式:     synchronized(需要一个任意的对象(锁)){       代码块中放操作共享数据的代码。     }   synchronized的缺陷    synchronized是java中的一个关键字,也就是说是Java语言内... 查看详情