鱼C论坛

 找回密码
 立即注册
查看: 2495|回复: 0

[学习笔记] Java暑期学习Day18

[复制链接]
发表于 2017-7-22 23:49:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第18天,希望能用理解的方式长期地记忆


                               
登录/注册后可看大图


继承语法细节

A.被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
B.依权限从小至大来区分,就是private、无关键字(默认)、protected、public
C.使用super关键字调用的父类方法,不能定义为private(因为这限定只能在类中使用。)
  1. <div><b>
  2. //父类
  3. class SuperClass {

  4.         // public SuperClass(){
  5.         // System.out.println("SuperClass的无参构造器");
  6.         // }
  7.         public SuperClass(String x) {
  8.                 System.out.println("SuperClass的构造器");
  9.         }

  10. }

  11. // 子类

  12. class subClass extends SuperClass {

  13.         subClass() {
  14.                 // 默认会调用父类无参数构造器
  15.                 super("bear");
  16.                 System.out.println("subClass的构造器");
  17.         }

  18. }

  19. // Super 关键字
  20. public class SuperDemo {

  21.         public static void main(String[] args) {
  22.                 /*
  23.                  * this 当前对象 super 当前对象的父类对象
  24.                  *
  25.                  * 应用场景:
  26.                  *
  27.                  * 1.在子类方法中,调用父类被隐藏的方法</b></div><div><b>2.在子类方法中,返回父类被隐藏的成员变量</b></div><div><b>3.在子类方法中,调用父类的构造器
  28.                  */

  29.                 // 创建子类对象
  30.                 subClass sub = new subClass();

  31.         }

  32. }</b>
  33. </div>
复制代码
结果是:
SuperClass的构造器
subClass的构造器

  1. //动物类
  2. class Animall {
  3.         private String name;
  4.         private int age;

  5.         Animall(String name, int age) {
  6.                 this.name = name;
  7.                 this.age = age;
  8.         }

  9.         public void say() {
  10.                 System.out.println(this.name + "," + this.age);
  11.         }

  12.         public void sayHi() {

  13.         }
  14. }

  15. // 鱼
  16. class Fish extends Animall {
  17.         private String color;// 颜色

  18.         Fish(String name, int age, String color) {
  19.                 // this.name = name;
  20.                 // this.age = age;
  21.                 super(name, age);
  22.                 this.color = color;
  23.         }

  24.         //
  25.         public void say() {
  26.                 super.say();
  27.                 System.out.println("我的年龄是:" + color);
  28.         }

  29.         // 检查方法是否为覆盖方法
  30.         @Override
  31.         public void sayHi() {

  32.         }
  33. }

  34. public class SuperDemo2 {

  35.         public static void main(String[] args) {

  36.                 Fish f = new Fish("小维尼熊", 2, "红色");
  37.                 f.say();

  38.         }

  39. }
复制代码
结果是:
小维尼熊,2
我的颜色是:红色


D.重新定义(Override)方法时要注意,对于父类中的方法权限,子类只能扩大不能缩小


E.static方法属于类拥有,如果子类中定义了相同签署的static成员,该成员属于子类所有,而非重新定义,static方法也没有多态,因为对象不会个别拥有static成员。


F.构造函数可以重载,父类中可重载多个构造函数,如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中的无参数构造函数。


G.在Java中,子类只能继承一个父类,如果定义类时没有使用extends关键字指定继承任何类,那就意味着继承java.lang.object。


  1. <div>import java.util.Arrays;


  2. public class ArrayList {

  3.         private Object[] list;                                          //使用Object数组收集
  4.         private int next;                                               //下一个可存储对象的索引
  5.        
  6.         public ArrayList(int capacity){//指定初始容量
  7.                
  8.         int capasity=0;
  9.                 list=new Object[capasity];
  10.         }
  11.        
  12.         public ArrayList(){
  13.                 this(16);    //初始容量默认为16
  14.         }

  15. public void add(Object o){                                    //收集对象方法
  16.         if(next==list.length){                                              //自动增长Object数组长度</div><div>list=Arrays.copyOf(list,list.length*2);
  17.                 }</div><div>
  18.         list[next++]=o;
  19.         }
  20.        
  21.         public Object get(int index){                                          //依照索引取得收集的对象
  22.                 return list[index];
  23.         }
  24.         public int size(){                                         //已收集的对象个数
  25.                 return next;
  26.         }

  27. }
  28. </div>
复制代码




lang                       adj.<苏格兰>长的,很久的,冗长的;

object                            n.物体; 目标; 宾语; 客体,对象;
                                      vi.不赞成,反对; 抱反感;
                                      vt.提出…作反对的理由;



capacity                n.容量; 性能; 才能; 生产能力;
                           adj.充其量的,最大限度的;



resolved             adj.下定决心的,断然的; 坚决的; 已解决的;
                             v.做决定,分解(resolve的过去式和过去分词);



variable               adj.变化的,可变的; [数] 变量的; [生] 变异的;
                             n.可变因素,变量; 易变的东西;



评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 03:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表