22.1 Extends 继承的 方法重写、@Override的使用、

/* * 继承中成员方法的特点 *        子类中没有这个方法,调用父类的 *        子类中重写了这个方法,调用子类的 *

   方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法   方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关

 *     方法重写的应用场景:当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法, *                  并可以在方法中使用关键字super调用父类的方法,这样做即可以保有父类的功能,也可以拥有子类特有的功能 * *  方法重写的注意事项: *             不能重写父类私有的方法 *            权限必须大于等于父类方法的权限 * *  注解:@ *        @Override:可以验证子类中的方法是否和父类中的一样,若和父类方法不同则报错。(不加@Override不会报错但是方法就是新的方法不是继承父类的方法)
public class Review {
    public static void main(String[] args) {
        NewPhone n = new NewPhone();
        n.call();
    }
}

class Phone {
    public void call() {
        System.out.println("打电话");
    }
}

class NewPhone extends Phone {
    @Override
    public void call() {
        System.out.println("看电视");//重写父类中的call方法
        super.call();//使用super调用父类的方法
    }
}

输出

原文地址:https://www.cnblogs.com/longesang/p/11202612.html

时间: 2024-11-01 12:53:37

22.1 Extends 继承的 方法重写、@Override的使用、的相关文章

c# 中面相对性的三个特点:封装,继承,多态, 以及c#中隐藏(new)和方法重写(override)和重载(overload)的区别

封装 1)封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问,通常有两种访问方式:set 设置,get 获取. 2)封装结果:存在但是不可见. 3) 访问修饰符 声明的可访问性                                 含义 public                                    访问不受限制. protected                              访问仅限于本类或者其子类(可以跨程序集). p

面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字

面向对象设计的过程:     发现类-发现类的属性-发现类的方法-优化设计: 封装: private类型的,只可以在本类中使用,当其他类调用此类时,不可使用,因此可以设置setget方法,如下所示: 构造------------------------ 默认有无参构造,若设置了有参构造,则就没有默认的无参构造了,需要自己再添加一个 方法重载------------------- 方法名相同,参数列表不同(类型,数量,顺序不同,与参数名无关): 与返回值,访问修饰符无关 面向对象(OO)的优点--

10.方法重写Override

方法重写:Override: 需要有继承关系,子类重写父类的方法! 方法名必须相同 参数列表必须相同 修饰符:范围可以扩大,但不能缩小:public>protected>defalut>private 抛出异常:范围,可以被缩小,但不能扩大:ClassNotFoundException-->Exception 重写,子类的方法和父类的必须要一致:方法体不同! 为什么需要重写? 父类的功能,子类不一定需要,或者不一定满足! Alt+Insert:Override: 1 package

php类和命名空间介绍,成员方法和类方法,类的继承与方法重写

1. 类和命名空间的介绍 foo.php: <?php // require_once 'lib.php'; // $h = new Hello(); //类的实例 // $h->sayHello(); //实例访问类的方法s// $d = new Desktop();// $d-> work(); // require_once 'Apple/foo.php';  //foo.php的文件位置 // $h = new \jkxy\Hello(); //foo.php的命名空间,在Hel

【java】Java的继承,方法重写,访问权限

继承 **首先面向对象的三大特性: 1. 封装 2. 继承 3. 多态** 语法 class Subclass extends Superclass{ } 作用 继承的出现提高了代码的复用性. 继承的出现让类与类之间产生了关系,提供了多态的前提. 不要仅为了获取其他类中某个功能而去继承 例子 class Person { String name; int age; } /*继承与Person类*/ class Student extends Person { int weight; } Stud

Python类的继承和方法重写总结

我们都知道类可以继承,通过继承可以实现代码的复用,使代码看起来更加简洁 比如: Class B(A): Pass 定义了一个名为B的类,它继承于A,我们把B叫做A的子类,A叫做B的超类(父类). 方法重写 当子类定义了一个和超类相同名字的方法时,那么子类的这个方法将覆盖超类相同的方法(或称为重写) 先借用两个例子: >>> class Bird: ...     def __init__(self): ...         self.hungry = True ...     def 

第七天 继承之方法重写

方法重写又称方法覆盖java中子类可以继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动的继承父类的方法而是想做一定的修改,着时候就需要采用方法的重写 方法覆盖的注意事项: 1权限:子类的的权限(访问修饰符)一定要不小于被重新的方法的权限(访问修饰符) 2方法定义:方法名和参数列表必须一样 3返回值:基本数据类型:子类和父类的必须一置 引用数据类型:子类可以与父类相同也可以是父类的子类 4抛出异常:子类抛出的异常不能超过父亲抛出的异常(子类的异常不能大于父类的异常) 5不能被

04 Python的继承、方法重写、super()类

继承 A类继承B类,A即可获得B类的全部公共属性和方法.格式如:class A(B): class Animal: def sleep(self): print("zZZ...") def eat(self): print("yamiyami...") def run(self): print("huchihuchi...") class Dog(Animal): #Dog类拥有sleep,eat,run,bark四个方法 def bark(se

继承与方法重写

public class A { public virtual void Fun1(int i) { Console.WriteLine(i); } public void Fun2(A a) { a.Fun1(1); Fun1(5); } } public class B : A { public override void Fun1(int i) { base.Fun1(i + 1); } } class Program { public static void Main() { B b =