1.继承 :  子承父业

目的 : 提高代码的复用性
        作用: 子类一旦继承父类,有权使用父类中的成员,可以在子类中定义子类独有的内容
        定义:   子类  extends  父类

实体类|子类 : 根据一系列对象抽取共性所定义的实体类
    父类 : 子类的共性

子类| 派生类
    父类 | 基类 | 超类

特点 : 单继承机制 ,一个子类只能继承一个父类,但是一个父类可以存在多个子类
          修饰类只能使用public|default(默认)
          开闭原则--> 面试对象设计原则之一  : 对修改关闭,对扩展开放

单继承的优点 : 简单
    单继承的缺点 : 不便于后期维护

public class Class001_Extends {public static void main(String[] args) {Teacher t = new Teacher();t.name = "马云";t.age = 50;t.subject = "英语";t.teach();t.sleep();}
}//父类
class Person{public String name;public int age;public void sleep(){System.out.println(name+"在休息");}
}//子类
class Teacher extends Person{public String subject;  //教授学科//构造器public Teacher(){}public void teach(){System.out.println("教书育人!!!");}
}
//子类
class Student extends Person{public int num;  //学号//构造器public Student(){}public void study(){System.out.println("学习!!!");}
}

2.访问权限修饰符 :

本类             同包类             不同包下的类          不同包下的其他类
        private私有的                  √
        default默认的                  √                    √
        protected受保护的          √                    √                          √
        public公共的                   √                     √                          √                                √

注意:
        都是成员修饰符,只能修饰成员,不能修饰局部
        能够修饰类的 : public | default
        Protected修饰的成员在不同包下的子类中,需要通过继承关系使用
        最常用的两种权限 : public|private

public class Class001_Modifier {public String  testPublic = "public";protected String  testProtected = "protected";String  testDefault = "default";private String  testPrivate = "private";public static void main(String[] args) {new Class001_Modifier().test();}public void test(){//测试本类中使用System.out.println(testPublic);System.out.println(testProtected);System.out.println(testDefault);System.out.println(testPrivate);}public static void testStatic(){//测试本类中使用Class001_Modifier cm = new Class001_Modifier();System.out.println(cm.testPublic);System.out.println(cm.testProtected);System.out.println(cm.testDefault);System.out.println(cm.testPrivate);}}
//同包类
class Demo{public static void main(String[] args) {//测试本类中使用Class001_Modifier cm = new Class001_Modifier();System.out.println(cm.testPublic);System.out.println(cm.testProtected);System.out.println(cm.testDefault);//System.out.println(cm.testPrivate);}
}
/*不同包下的子类*/
public class Son extends Class001_Modifier {public void test(){System.out.println(testPublic);System.out.println(testProtected);//System.out.println(testDefault);//System.out.println(testPrivate);}public static void main(String[] args) {//父类对象访问Class001_Modifier cm = new Class001_Modifier();//Protected修饰的成员在不同包下的子类中,需要通过继承关系使用System.out.println(cm.testPublic);//System.out.println(cm.testProtected);//子类对象访问Son son = new Son();System.out.println(son.testPublic);System.out.println(son.testProtected);}
}

3. super 与 this 之间的区别:

this 指代当前new对象
            本类构造器的首行调用本类中的其他构造器this(参数列表)
            区分局部与成员同名问题
                默认就近原则
                通过this.调用成员

super 指代父类对象
            子类构造器的首行,通过super(参数)调用父类中的指定构造器
                如果没有显示通过super(参数)调用,默认调用父类的空构造
            区分子父类中同名成员
                如果不存在同名问题 : 可以省略super.调用父类成员
                如果存在子父类同名成员问题,同名局部问题 :
                    默认就近原则
                    有局部找局部
                    通过this.找子类成员
                    通过super.找父类成员

注意:
        子父类继承关系下 : 创建子类对象的时候,其实会先父类后子类
        不能在构造器的首行同时使用this(参数)与super(参数)
        this与super都不能使用在静态方法中

public class Class001_Super {public static void main(String[] args) {Zi zi = new Zi("");zi.test();}
}class Fu{String str = "FuStr";public Fu(){System.out.println("Fu");}public Fu(int i){System.out.println("Fu");}
}class Zi extends Fu{//String str = "ZiStr";public Zi(){super(100);//super();System.out.println("Zi");}public Zi(String s){this();System.out.println("Zi----String");}public void test(){String str = "local";System.out.println(super.str);}
}
/*测试 :*/
public class Class002_Animal {public static void main(String[] args) {Pig pig = new Pig("佩奇","小香猪","粉色");pig.show();}
}//父类
class Animal{public String type;public String color;public Animal(){}public Animal(String type,String color){this.type = type;this.color=color;}public void eat(){System.out.println("觅食...");}
}

4.重写 与 重载 之间的区别 :

都是方法的特性

重载的实现条件 :
            1.一个类中的多个方法
            2.方法名相同
            3.参数列表不同|方法签名不同

重写的实现条件:
            1.两个类
            2.继承|实现
            3.方法签名完全相同

重写的需求 :
        当子类从父类中继承的功能满意,对功能实现不满意的时候,可以在子类对从父类中继承的功能重新实现

调用使用 :
        如果子类中没有重写,调用父类的,父类没有报错
        如果子类存在重写方法,调用子类中重写后的方法,对父类的方法进行屏蔽

检测是否为重写方法 :
        1.idea行号后面的位置出现o向上箭头
        2.在重写方法上添加注解 @Override

不能被重写的方法 :
        1.被private修饰的方法不能被重写
            能被子类继承,但是无权使用
        2.被final修饰的方法不能被重写
        3.被static修饰的方法不能被重写
            可以被继承不能被重写
            如果子类中出现与父类中静态方法同名的方法,要求子类中这个同名的方法也被static修饰

public class Class001_Override {public static void main(String[] args) {SiCong siCong = new SiCong();siCong.words();siCong.test();}
}

5. final 最终的

被final修饰的变量为常量
        被final修饰的方法不能被重写
        被final修饰的类不能被继承-->太监类

public class Class001_Final {final static Student s = new Student();public static void main(String[] args) {//s = new Student();System.out.println(s.age);s.age++; //只修改了对象内存空间中的属性值,没有修改s存储对象地址值,所有s还是常量System.out.println(s.age);}
}class Student{int age = 18;
}class JianLin{String name = "王健林";//名人名言public static void words(){System.out.println("先定义小目标,挣它一个亿...");}public static void test(){}
}class SiCong extends JianLin{String name = "王思聪";重写方法public static void words(){System.out.println("我在不在乎我的朋友有钱没有,反正都没我有钱...");}
}//pig
class Pig extends Animal{public String name;public Pig(){}public Pig(String name){this.name = name;}public Pig(String name,String type,String color){super(type,color);this.name = name;}public void show(){System.out.println(name+"--->"+type+"--->"+super.color);}
}

6.Javabean :

一系列实体类的统称
        定义规范 :
            1.类是公共的
            2.至少一个空构造
            3.属性私有化
            4.提供一对公共的访问方式

public class Class001_Javabean {
}

java子承父业(继承,访问权限修饰符,super,重写,final)相关推荐

  1. Java访问权限修饰符详解

    Java中的访问权限修饰符(Java关键字) 今天很皮的发现,自己现在竟然不会玩儿Java基础了,就翻看了一下自己的笔记,写一篇文章复习一下! 测试环境:Java运行环境,myEclipse. 测试前 ...

  2. Java语法封装之继承、访问权限修饰符、重载与重写、this与super、final、Javabean的使用

    3.3封装 封装 : 隐藏内部的实现细节,对外提供公共的访问方式.方法,类,属性的私有化- 都是封装的体现 封装优点 : 提高程序的安全性 提高代码的复用性 私有是封装,但是封装不是私有 3.3.1 ...

  3. JAVASE零基础入门——package、封装、继承、访问权限修饰符、super、重写、Javabean 和 final 关键字

    目录 一.Package 二.封装 三.继承 四.访问权限修饰符 五.super 关键字 六.重写 6.1 重写 与 重载 之间的区别 : 6.2 重写的实现条件: 6.3 重写的需求 : 6.4 调 ...

  4. Java学习笔记10(零压力理解继承多态权限修饰符)

    文章目录 继承 方法的重写(override) 四种访问权限修饰符: 关键字super 类对象的实例化的底层原理 多态 instanceof操作符 object类 继承 继承是Java最重要的,类之间 ...

  5. 学习大数据的第13天——Java面向对象(接口、分析参数返回值的类型不同时如何解决、包以及访问权限修饰符(public、protected、默认、private))

    学习大数据的第13天--Java面向对象(接口.分析参数返回值的类型不同时如何解决.包以及访问权限修饰符(public.protected.默认.private)) 接口 接口的基本定义: 1.1.语 ...

  6. 2020.1.30 封装和隐藏(四种访问权限修饰符)、this、JavaBean、继承、方法的重写

    面对对象特征之一:封装和隐藏 Java中通过数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对属性的操作. 四种访问权限修饰符 在同一个ja ...

  7. Java访问权限修饰符

    1.Class类的访问权限:  public:可以供所有的类访问.  默认:默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++.默认的访问权 ...

  8. Java——类成员的访问权限修饰符(private、protected、public、default)

    本文转载自:https://blog.csdn.net/qq_41420688/article/details/83348546 1. 作用 封装将数据和操作连接起来.封装的一个重要属性:访问控制. ...

  9. 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载

    前面提到的,冒泡排序,二分查找,我们有时候写代码可能不止要查到一种数组的数据,这时候我们就很需要想循环那样的结构,来帮我们解决代码冗余的情况. 我们前面使用的main方法,是一个java程序的入口,我 ...

最新文章

  1. 在图片中如何生成带有文字边缘空心字体?
  2. 两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)...
  3. hashmap实现倒排索引——查询多个单词出现在多个句子中
  4. 【GPU精粹与Shader编程】(一) 全系列核心知识点总览
  5. G6 图可视化引擎——简介
  6. 大型分布式架构详解:架构模式+敏捷性+可扩展+案例等
  7. Qt之QListView使用
  8. NLP学习—22.Transformer的代码实现
  9. 数据挖掘实战 —— 泰坦尼克号
  10. 360安全卫士安装不了此程序被组策略阻止
  11. 海报生成的Java方法
  12. [Pytorch系列-24]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 1
  13. 完全卸载 OneDrive / 重装 OneDrive / 解决“已经安装了 OneDrive”
  14. 微信分享链接,图片不显示
  15. Redis技术贴一览表
  16. 易安居平安家园隐私政策
  17. “蔗里最甜”开展新型婚育文化宣传活动
  18. ThinkPHP5.0+PHPMailer 实现qq邮箱验证码
  19. Android 10 添加安装白名单和卸载黑名单
  20. 三星android功能怎么用,三星画中画功能是什么意思?三星手机画中画功能使用教程图解...

热门文章

  1. 循环神经网络-RNN
  2. 地理学三大定律(根据文献归纳总结,详解哦)
  3. 整理的C++面经(较全)
  4. feign 序列化_自定义 feign 反序列化时间字符格式
  5. 洛克王国服务器维修,洛克王国:让服务器瘫痪的4个神宠,前3位全部都没落,第4只却还这么强大...
  6. FIRST集、FOLLOW集和SELECT集
  7. 用HTTP代理IP的三个误区。
  8. Greenplum数据库快速调优
  9. 2020-009 奇怪的方式 解决奇怪的R装包bug
  10. 外呼系统源码搭建,AI智能机器人