子类不会继承父类的构造方法,在子类的构造方法中可使用super(参数列表)调用父类的构造方法。
class Person
{ String name;
  int age;
  public Person();
  public Person(String name,int age)
  { this.name=name;
    this.age=age;
  }
  public void getInfo()
 { System.out.println("name="+name+",age="+age);}
}
class Student extends Person
{ public String school="unknow"
  public Student()
  { super();}
  public Student(String name,int age)
  {  super(name, age)}
  public Student(String name,int age,String school)
  { this(name,age);  //此处用this 调用其它的构造函数  public Student(String name,int age)
    // super(name,age);      此处用super就没有意义了
    this.school=school;
    super.getInfo(); //调用父类的getInfo()
  }
  public void getInfo()  //重写父类中的方法
 { System.out.println("school="+school+",name="+name+",age="+age)}
  public void study()
  { }  
}
//  1.super()和this()调用语句不能同时在一个构造函数中出现
//  2.super()和this()调用语句只能作为构造函数中的第一句出现

class TestStudent
{ public static void main(String[] args)
  {  Student st=new Student("zhangshan",20,"清华大学")
     st.getInfo()
  }
}

-----------------------
final用法
1.final 加在类前这个类不允许被继承
2.final 加在成员变量前,成员变量为常量,不允许再被赋值. (1)final String x="abc"; (2) final String x;
  x="abc"  //x="abc"必须放在构造函数中,而且重载的构造函数都得写上x="abc";
3.方法被定义为final,在子类中方法就不允许被复盖,只能继承

static 作用:用static定义的变量,可不用创建对象直接用类名进行调用  Abc.x
class Abc{
  public static String x="abc"
}

class Abc{
  public static final String x="abc"
  public Abc(){ x="abc" } //错,因为x已经被定义成静态的了,所以final定义的常量就不能在构造函中赋值了,必须在定义时初使化。
}

System.out.println (Float.MAX_VALUE);打印出最大的浮点小数

---------------------------

抽象类(abtract)
  java中可以定义一些不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况去实现,这样的方法就是抽象方法,包含抽象方法的类就叫抽象类。
--抽象类必须用abstract关键字来修饰;抽象方法也必须用abstract来修饰。抽象类中所有的类必须为抽象的方法
--抽象类不能被实例化,也就是不能用new关键字去产生对象。
--抽象方法只需声明,而不需实现。
--含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
abstract class A
{  private int i=1; //在抽象类中可以定义变量
   abstract int aa(int x,int y);
   abstract void bb();
   public void cc() //在抽象类中可以定义一般的方法
   {System.out.println(i);}
}
class B extends A
{ int aa(int x,int y){ return 1; } //方法中必须有一个反回值
  void bb(){}
 
  public static void main(String[] args)
  { B b=new B();
    System.out.println(b.aa(1,2));
    b.cc(); 
  } 
}

接口(interface)
    如果一个抽象类中的所有方法都是抽象的,我们就可以将这个类用另外一种方式来定义,也就是接口定义。接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
--接口中的成员都是public访问类型的。接口里的常量默认是用public static final标识的,所以接口中的变量,都是全局静态常量。
--我们可以定义一个新的接口用extends关键字去继承一个已有的接口
--我们也可以定义一个类用implements关键字去实现一个接口中的***所有方法***(包括这个接口的父接口中的方法)
----我们还可以去定义一个抽象类用implements关键字去实现一个接口中定义的***部分方法***。
--  一个类可以继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前。

interface Runner
{ public static final int ID=1;或  int ID=1 // 定义常量,可将public static final 省略,定义的也是常量,因为接口中只能定义常量。
  void run();
}
interface Animal extends Runner //继承Runner的接口
{  void breathe();
 }

class Fish implements Animal
{ public void run(); //因为接口里声明的类默认是public,而在继承时子类必须比父类的访问权限要高,所以不能直接写void run(),如果不写public编绎时会出错。 
  { System.out.println("fish is swimming");
   }
  public void breathe()
  { System.out.println("fish is bubbling");  
  }
  public static void main(String[] args)
  { Fish f=new Fish();
    int j=0;
    j=Runner.ID;  //去引用Runner中的常量id,因为id默认是static型的,所以用Runner直接调用。
    j=f.ID;
  j=Fish.ID;  //因为Fish类,继承父类,所以可以这样的引用
    f.iD=2; //这句错,因为id是常量,不能赋值

}

abstract class LandAnimal implements Animal //因为LandAnimal没有继承Animal的所有方法,所以在类前必须声明为抽象类。
{ public void breathe(){}; //?????有一个问题,这样定义一个类以后,因为是抽象类不能定义对象,然而作一个这个类的继承以后,编译出错,还有抽象类里面为什么加{},原程序在我的文档中,Aaa.java
}                         //问题解决了,抽象类的确不能创建对象,这没错,而要是继承这个类,前面的所有继承都须要被重写,而前面说到的{}则是必须要加到里面的,一个抽象类继承一个接口,抽象类中的方法必须加{},下面写一个继承它的程序,但要是把它再定义成抽象方法,可以这样写,abstract  public void breathe() ;
class LAL extends LandAnimal
{ public void breathe(){
   System.out.println("hhhhhhhhhhhhhhhhh");
   }
  public voic run(){};     //子类继承父类是抽象类或接口必须继承父类的所有的方法
 }    // 这样就没问题了
             
class Student extends Person implements Runner //假设前面有个Person类,这个就是即继承Person这个类,而且还实现了implements这个接口,但extends必须在implements的前面.
{  public void run();
 }

interface Flyer
{ void fly();}
class Bird implements Runner,Flyer  //一个类可以同时继承多个接口
{  public void run(){}
   public void fly(){}
}

java学习笔记(五)----super用法,final用法,抽象类,接口相关推荐

  1. Java学习笔记(五):一张图总结完JVM8基础概念

    Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...

  2. JAVA学习笔记五---函数

    JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...

  3. Java学习笔记之Pattern类的用法详解(正则表达式)

    转自:https://www.cnblogs.com/sparkbj/articles/6207103.html EG: //验证邮箱 public static final String REGEX ...

  4. 【Java学习笔记五】Java异常处理

    异常通常分为三类: 程序可控制的异常:一般是可预见的错误,不是致命的.例如:除数为0,数组下标越界. 程序不可控制的的异常:这种异常往往是致命的,但是系统可以预见的.例如:系统栈溢出. 人为异常 当系 ...

  5. JAVA学习笔记(五十七)- 常用设计模式

    单例模式 /** 单例模式* 应用场合:有些对象只需要一个,此时可以使用单例模式* 作用:保证整个应用中某个实例有且只有一个* 类型:饿汉模式.懒汉模式*/ public class Test04 { ...

  6. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...

  7. Java学习笔记6.3.4 文件操作 - Path接口和Files工具类

    文章目录 零.本讲学习目标 一.NIO概述 (一)NIO定义 (二)NIO相关包 (三)NIO三大核心 二.NIO.2概述 (一)NIO.2定义与特点 (二)NIO.2提供的接口与工具类 三.Path ...

  8. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  9. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

最新文章

  1. 解决nginx 502 bad gateway--团队的力量
  2. 千兆宽带:是为了速度而提升速度吗?
  3. 1090 Highest Price in Supply Chain (25 分)【难度: 一般 / 知识点: 树的遍历】
  4. 苹果欲借免费纳米SIM卡技术控制行业标准
  5. myisam为什么比innodb查询快_那些还不会MySQL锁的程序员们,求你快看看这篇文章吧...
  6. phpstudy 提示安装VC9 VC14等,MySQL启动失败红色小点点,解决办法。PHP VC版本下载集合
  7. windows11iis如何安装?
  8. 手机html己停用怎么办,iphone手机出现已停用请五分钟再试怎么办
  9. 装配图中齿轮的画法_机械制图之装配图
  10. 安卓手机作为文件共享服务器,安卓手机的文件共享应该怎么操作?
  11. 南京大学计算机科学专硕培养方案,计算机科学与技术专业硕士研究生培养方案(2014版)...
  12. django实现证件照换底色后端和小程序(第三周学习记录)
  13. 云服务器BCc怎么创建php环境,百度智能云服务器BCC如何升级wordpress的php环境
  14. 计算机联盟社团团活动总结,社团活动总结
  15. 汇编语言基础--汇编操作指令概述
  16. format在java_java Format什么意思
  17. bootstrap表单验证
  18. java中的类可以有多个直接父类_一个java类可以有多个父类吗?
  19. Metaspace整体介绍
  20. 第一章、计算机网络与英特网(重点知识梳理)

热门文章

  1. python print 用法
  2. pku3661 Running
  3. 路由重分布与分布列表
  4. 四大原因可能让你拿到订单
  5. [2010国家集训队]Crash的旅游计划
  6. web主题公园版权信息破解:script.js加密文件
  7. HDOJ 1202 The calculation of GPA
  8. requirejs 加载其它js
  9. ios8 UITableView section不显示
  10. nyist 541最强DE 战斗力