15.方法重写规则

public class Base {
    public void method1(){
        System.out.println("父类的实例方法");
    }
    public static void method2(){
        System.out.println("父类的静态方法");
    }
    public Base method3(){
        System.out.println("父类返回值类型为base的方法");
        return new Base();
    }

    private void method4(){
        System.out.println("父类的私有方法");
    }
}
public class Sub extends Base{
    //private void method1(){    //访问权限不能严于父类
    //public static void method1(){    //父类的非静态方法不能被子类覆盖为静态方法
    public void method1(){
        System.out.println("子类的实例方法");
    }

    //public void method2(){  //父类的静态方法不能被子类覆盖为非静态方法
    //子类可以定义与父类同名的静态方法,以便在子类中"隐藏"父类的静态方法
    public static void method2(){
        System.out.println("子类的静态方法");
    }

    //返回值类型相同或者是其子类
    public Sub method3(){
        System.out.println("子类返回值为Sub的方法");
        return new Sub();
    }

    //父类的私有方法不能被子类覆盖,这样写可以,但是是独立的方法
    public void method4(){
        System.out.println("子类的私有方法");
    }
}
时间: 2025-01-12 05:11:00

15.方法重写规则的相关文章

java方法重写规则

参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected. 父类的成员方法只能被它的子类重写. 声明为final的方法不能被重写. 声明为static的方法不能被重写,但是能够被再次声明. 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法. 子类和父类不在同一个包中,那么子类只

疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同时这这里我们需要注意以下两点:  A.方法重载与返回值类型没有任何关系;  B.方法重载与是否有static修饰没有任何关系. 那我们如何才能确定到底调用的哪个方法呢?  A.主调者:明确是谁在调用这个方法,是类还是对象  B.方法名和形参:确定调用哪个方法(由方法名和形参共同决定) 例1: 1 p

How-to:绘制换行文本的两种方法

第一种方法:用GDI+在矩形中绘制换行文本 1 private void btnGDIPlusMethod_Click(object sender, EventArgs e) 2 { 3 this.pictureBox1.Image = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height); 4 Graphics g = Graphics.FromImage(this.pictureBox1.Image); 5 g.Clear(C

【原】Java学习笔记008 - 方法(函数)

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 方法/函数 Method/Function 6 7 // 为什么会出现方法? 8 // 原因1.在程序中多处出现相同的语句内容 9 // 原因2.会发生变化 10 11 // [只有变化是不变的] 12 // 回顾一下变量,为了应对变化,提出的新的机制 13 // 需要对变化进行封装处理,在这里就

js自动轮播图片的两种循环方法(原创)

用5个div,布局从左到右5张图片,从左到右5个div分别指定ID为img1,img2,img3,img4,img5.(背景是relative,5个div是相对于背景absolute定位) 显示如下: 方法一:(把一个div直接赋值给另一个,轮播一次要for循环5下) 1 function autoplay(){ 2 var x,y,baoliu; 3 baoliu=document.getElementById("img5").style.backgroundImage; 4 for

php中使用Curl、socket、file_get_contents三种方法POST提交数据

抓取远程内容,之前一直都在用file_get_content函数,其实早就知道有curl这么一个好东西的存在,但是看了一眼后感觉使用颇有些复杂,没有file_get_content那么简单,再就是需求也不大,所以没有学习使用curl. 直到最近,要做一个网页小偷程序的时候才发现file_get_content已经完全不能满足需求了.我觉得,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,其他都没有curl好. php中curl和file_get_content的

Js中去除数组中重复元素的几种方法

方法1: 1 Array.prototype.method1=function(){ 2 var arr=[]; 3 for(var i=0;i<this.length;i++){ 4 if(arr.indexOf(this[i]) == -1){ 5 arr.push(this[i]); 6 } 7 } 8 return arr; 9 } 方法2: 1 Array.prototype.method2 = function(){ 2 var h{}; //定义一个hash表 3 var arr[

java方法的重写与重载

方法重写规则: 参数列表和返回值类型必须与被重写的方法相同 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected 父类的成员方法只能被它的子类重写 声明为final的方法不能被重写 静态方法也能被继承. 但是, 静态方法不能被覆盖. 如果父类中 定义的静态方法在子类中被重新定义, 那么在父类中定义的静态方法将被隐藏. 可 以使用语法: 父类名 .静态方法名(SuperClassName. staticM

12函数式接口、方法引用

12.1  函数式接口 12.1.1 概念 1.函数式接口在Java中是指:有且仅有一个抽象方法的接口. 2.函数式接口,即适用于函数式编程场景的接口,而Java中的函数式编程体现就是Lambda,所有函数式接口就是可以适用于Lamnda使用的接口,只有确保接口中有且仅有一个抽象方法,java中的Lambda才能顺利地进行推导. 3.语法糖的定义:是指使用更加方便,但是原理不变的代码语法,例如在遍历集合时使用的for-each语法,其实底层的实现原理 仍然是迭代器,这就是语法糖,从应用层讲, j