继承extends

  私有成员不能被继承

    总结:子类方法中,使用变量的原则是:就近原则

 1 package review06;
 2 /*
 3 私有成员不能被继承
 4     子类和父类有同名的成员变量:在子类的方法中,优先使用子类的成员变量
 5     当子类的方法中有和成员变量重名的局部变量时,优先使用局部变量
 6         总结:子类方法中,使用变量的原则是:就近原则
 7
 8 */
 9 class Father{
10     private int num = 10;//私有成员变量不能被继承
11     int num1 = 11;
12     public void method(){
13         int num2 = 2;
14         System.out.println(num2);
15     }
16 }
17 class Son extends Father{
18     int  num1  = 12;
19     public void show(){
20         num1 = 13;
21         System.out.println(num1);
22     }
23 }
24 public class ExtendsDemo2 {
25     public static void main(String[] args) {
26         Son s = new Son();
27         s.show();
28         s.method();
29
30     }
31 }

继承extends

this  super  final 关键字

  this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。 

   super 关键字 父类对象内存空间的标识
子类创建对象时,为什么还需要把父类也在一片空间中创建出来???
就是由于子类对象有可能使用到父类的成员变量,
而父类的成员必须在堆内存中存在,所以父类对象必须被首先创建出来
而这个过程是虚拟机自动完成的./*

super的应用
构造方法不能被继承
super(...):显式的去调用父类的带参构造方法
子类的所有构造方法,默认情况下,第一条语句都是super();
一旦父类提供了任何构造方法,就没有默认的空参构造,super()出错.
解决方法:
1.手动提供空参构造
2.使用super调用父类的其它构造方法
*/

  final 修饰类:终极类,不能被继承
final 修饰成员方法:不能被覆盖(重写)
final 修饰变量:只能被赋值一次(自定义常量)
final修饰的有三个地方可以赋值:
1.定义的时候就赋值
2.构造代码块中赋值
3.构造方法中赋值

 

abstract抽象类

抽象类:包含抽象方法的类就是抽象类
抽象方法是子类自己去实现,而父类只规定方法签名.

//实现子类
//子类如果是非抽象类的话,那么一定要实现父类中所有的抽象方法,
//但是,如果子类也是抽象类,那么可以不实现父类中所有的抽象方法

Animal dog2 = new Dog();
//dog2.show1();//向上造型,创建的对象,子类中的特有方法无法调用

 1 /*
 2     抽象类:包含抽象方法的类就是抽象类
 3     抽象方法是子类自己去实现,而父类只规定方法签名.
 4
 5 */
 6
 7 abstract class Animal{
 8     abstract void run();
 9 }
10
11 class Dog extends Animal{
12     void run(){
13         System.out.println("Dog run");
14     }
15 }
16
17 class Cat extends Animal{
18     void run(){
19         System.out.println("Cat run");
20     }
21 }
22
23 public class AbstractDemo1{
24     public static void main(String[] args){
25         Dog d = new Dog();
26         d.run();
27         Cat c = new Cat();
28         // c.run();
29     }
30 }

abstract抽象类

override方法重写

子类出现和父类方法签名一模一样的方法时,父类的方法被覆盖,可以super显式调用

静态方法中不能出现super/this关键字

 1 /*
 2     子类出现和父类方法签名一模一样的方法时,父类的方法被覆盖,可以super显式调用
 3
 4 */
 5 class Father{
 6     private void show(){
 7         System.out.println("Father show()");
 8     }
 9     void method(){
10         System.out.println("Father method()");
11     }
12     static void function(){
13         System.out.println("Father function()");
14     }
15 }
16 class Son extends Father{
17     private void show(){
18         System.out.println("Son show()");
19     }
20     void method(){
21         super.method();//
22         System.out.println("Son method()");
23     }
24     static void function(){
25         // super.function();//静态方法中不能出现super/this关键字
26         System.out.println("Son function()");
27     }
28 }
29 public class OverrideDemo1{
30     public static void main(String[] args){
31         Son s = new Son();
32         s.method();
33         s.function();
34     }
35 }

override方法重写

转载于:https://www.cnblogs.com/star521/p/8742888.html

继承extends ,this super final 关键字,abstract抽象类,override方法重写相关推荐

  1. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  2. 学习-Java继承和多态之final关键字

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目:学习-Java继承和多态之final关键字. 任务:调试代码,对代码进行增添.删除和修改等操作,使得程序能够正常运行,输出结果请 ...

  3. Java关键字详解this、private、static、super、extends继承、instanceof、final、abstract、interface、implements、enum...

    1,this //在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量. //1.在构造调用另一个构造函数,调用动作必须置于最起始的位置,即this( ...

  4. JavaSE——面向对象高级(继承、final关键字、抽象类与接口、多态、Object类、内部类、包装类、可变参数)

    第3节 面向对象高级 一.继承 1.1 概述和使用 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法 ...

  5. 继承extends、super、this、方法重写overiding、final、代码块_DAY08

    1:Math类的随机数(掌握) 类名调用静态方法.  包:java.lang 类:Math 方法:public static double random(): Java.lang包下的类是不用导包就可 ...

  6. java super extends_Java继承extends与super关键字

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 函数也称为方法! 继承:在java中使用extends关键字来表示继承关系.super用来继承父类方法和参数. 继 ...

  7. java 抽象类 final_Java8 final关键字与抽象类

    final关键字 最终无法改变的 final修饰的变量如果是成员变量没有默认初始值,如果修饰局部变量可以只声明不初始化 final 修饰类 方法 变量 final 修饰类:不能被继承 不能有子类 fi ...

  8. day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上/下造型,main方法,抽象类,接口,设计模式,异常,内部类

    1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...

  9. day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上_下造型,main方法,抽象类,接口,设计模式,异常,内部类

    1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...

最新文章

  1. 自监督学习(Self-Supervised Learning)多篇论文解读(上)
  2. 4、jQuery实现的全选、反选和不选功能
  3. 获得 bootstrapTable行号index
  4. typescript安装、数据类型及tsconfig配置项说明
  5. xor方程组消元 UVA 11542 Square
  6. [react] 简要描述下你知道的react工作原理是什么?
  7. t检验的p值对照表_论文数据分析实战 | 如何对汇总数据进行t检验
  8. cad填充图案乱理石_CAD绘图,缺少填充图案怎么办?900多种自定义图案可解燃眉之急...
  9. surf算子匹配物体
  10. WIFI篇(1.windows下的CMD命令)
  11. 架构之美读书笔记之三
  12. 算法竞赛入门经典训练指南 pdf
  13. 使用C#存储数据时excel有Microsoft切换到了wps时的引用
  14. Eclipse启动Tomcat 警告: 基于APR的本地库加载失败.错误报告为
  15. AT91SAM9260开发板
  16. 机械键盘各种设定(品牌:黑爵等)
  17. 服务器托管单线、双线以及多线如何区别
  18. 2019清明期间qbxt培训qwq
  19. (菜鸟教程)Java分支结构程序设计----if语句的使用
  20. 标准化作业指导书的作用是什么?如何制作标准化作业指导书?

热门文章

  1. PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)
  2. Netty实战 IM即时通讯系统(九)实现客户端登录
  3. 可变参数的使用之va_arg的陷阱s
  4. 【Qt】2D绘图之复合模式
  5. 火币网的macd怎么算的_黄金投资中MACD的计算方式
  6. docker重启mysql数据丢失_mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发
  7. 叉乘点乘混合运算公式_初中数学学不会?公式这样记,让你做题效率翻倍!
  8. 307 跳转会携带请求方法吗_面试官:GET和POST两种基本请求方法有什么区别
  9. php表达式生成工具,thinkPHP5.0数据查询表达式生成技巧
  10. Promise对象的创建与使用