java-2020-03-22

激活IDEA 

Help” -> “Edit Custom VM Options…”

输入

-javaagent:C:\Users\nrgh\jetbrains-agent.jar

重启软件

Help” -> “Register…”

选择License server方式,地址填入:http://fls.jetbrains-agent.com 

再重启软件即可

1.继承

共性抽取

员工 :父类(基类,超类)

讲师,助教:子类(派生类)

特点:1)子类可以有父类的内容

           2)子类可以有自己的内容

子类;public class Teacher extends Employee;

父类成员变量:  super.成员变量名

继承中重写

1.方法,参数都一样(覆盖,覆写),new谁谁优先;

2.子类返回值小于等于父类的返回值

java.lang.Object类是所有类的最高父类

3.子类权限大于等于父类权限

public>protected>()>private

   @Override//测试是否重写
    public void  method(){
        super.method();
         //
        //其他功能
    }

子类构造方法先调用父类;super();//隐藏子类中,只能在构造方法中,只能在第一行

重载:方法一样参数不同

super

访问父类的成员,构造方法,和变量

this

访问本类的成员方法,

构造方法(this(123);),第一个,唯一一个

和成员变量

java 单继承,多级继承(间接父类),可以有兄弟类;

一个类只有一个父类

java.lang.Object(亚当)

2.抽象类

父类:图形(抽象方法)计算面积

类与抽象方法都要加abstract;一个抽象类可以没有抽象方法

不能直接调用,需要子类继承,覆盖抽象方法,创建子类对象进行使用

public abstract class Animal
{
    public abstract void eat();
    public void  method(){

    }
}

3.接口(公共的接口标准)

public interface 接口名称{

}

java7:

1.常量

2.抽象方法(固定 public abstract,可选择省略)

注:接口都可定义

public interface MyInterface {
    public  abstract void method();

    public  default  void method1(){
        
    };//默认方法
}

java8;

3.默认方法(解决接口升级问题),接口实现类可以直接调用,也可覆盖

4.静态方法     接口名称 .方法,不能对象调用

java9;

5.私有方法;解决重复问题,(默认和静态)

private (static)void method(){

}

接口使用:(实现所有的抽象方法)

  1.类似继承,但一个类可以实现多个接口

  2. 要实现全部的抽象方法,否则加abstract变成抽象类;

 3.默认方法重复,实现类要重写

4.父类与接口,默认先用父类;继承>接口;

接口常量(成员变量)

public interface MyInterface {
    public static  final  int NUM_OFF=100;//常量,大写,可省略前面三个,必须赋值
    public  abstract void method();

    public  default  void method1(){

    };
}

接口不能有构造方法和静态代码块

接口可以多继承;(默认方法重复,要重写,加default)

4.多态

extends继承和implement实现,是多态前提,对象的多态性

父类名称 对象名=new 子类名称();

接口名称 对象名=new 实现类名称();

成员方法:编译看左边,运行看右边

成员变量:编译运行都看←;

对象向上转型;(多态)---安全   小--大;

父类名称 对象名=new 子类名称();

向下转型:(只能原路返回)

子类名称 对象名=(子类名称)父类对象

public class Demo04 {
    public static void main(String[] args) {
        Fu fu=new Zi();
        Zi zi=(Zi) fu;   /***/
        zi.meZi();
    }
}

Animal instanceof  Dog可用于判断

final 不变

1.修饰类

2.修饰方法

3.修饰局部变量

4.修饰成员变量

1)public final class 类名称{

}

不能有子类,必有父类;其中方法无法覆盖;

2)方法无法覆盖

abstract final矛盾,不能同时有

3)只能赋值一次

4)存在默认值,手动赋值

set不能用

                            public    >  potected   >   ()    >private

同一类                    =                   =                =        =                     我自己

同一包                                                                     NO                   我邻居

不同包子类                                                    NO    NO                   我儿子

不同包非子类                             NO               NO     NO                 陌生人

类包含类(内部类)

1.内用外,随意;外用内,要有内部对象;

外.内 名称=new 外().new 内();

2.重名 

外.this.num

局部内部类(在方法中)

外部类: public      () 

成员内部类:public    >  potected   >   ()    >private

局部内部类:啥都不写,(局部成员变量是有效 final,java8)

匿名内部类()                   省掉实现接口;只能用一次

接口直接new {

//重写所有抽象方法

}//这是匿名内部类

类,接口 都可作为成员变量;

发布了41 篇原创文章 · 获赞 13 · 访问量 5903

猜你喜欢

转载自blog.csdn.net/qq_41344974/article/details/104995847