java中的三(四)大特性

java中的三(四)大特性 : 继承 、 封装 、多态、(抽象)

类与类之间的关系:

is-a                   继承 、实现
继承的表现: 使用extends继承父类
实现的表现: 使用importance实现接口

has-a                 组合 、聚合、关联
关联的表现: 关联关系一般使用成员变量来实现。 

use-a  (need-a)  依赖
依赖的表现, 一个类的方法操作另一个类的对象
例如:人(Person) 开 车(Car)

继承
     使用extends关键词  子类继承父类,子类拥有父类所有的方法与属性 (注:除了private修饰的方法以及属性)
       在JAVA中只能单继承,所有的类没有显性的继承父类系统默认隐性继承Object类,Object类是所有的父类
     继承的好处:子类可以重写父类方法(实现运行时多态性),提高代码可复用性
    示例:
    //Son是子类 ,Father是父类 所以就是子类继承
     public class Son extends Father{    
         //方法......
     }
    super关键词:若子类重写父类方法,可使用super调用父类中的方法及属性,以及构造方法,调用构造方法时super关键词只能出现在第一行代码

多态

    实现多态的前提是:继承关系 ,父类作为引用地址指向子类地址
    语法:
    public class Animal{}
    public class Person extends Animal{}
    public class Test{
        public statci void main(String[] args){
            Animal animal=new Person();    //向上转型
        }
    }

抽象

    abstract修饰的类成为抽象类
    语法:public abstract class Animal{
                     public Animal(){
                        //Animal的构造方法
                    }
                    //抽象方法中不能包含方法体
                    pulic abstract void show();
                }
    类的权限修饰符为:protected、public 、默认不写
    定义了一个抽象方法则该类必须定义为抽象类
    抽象类中可以定义具体方法,构造方法,代码块
    抽象类不可以被实例化,需要通过子类继承(继承抽象类必须实现抽象类中所有的抽象方法,否则继承的子类也应该为抽象类),再将子类实例化
     注:定义了抽象类和抽象方法不能使用final修饰,使用final里修饰的为:最终类(方法),不能被继承、重写

接口

    interface 修饰的类 称为接口
    权限修饰符为public及以上
    语法:public interface Animal{
                //静态常量   public static final String name="啊榕";    //常量必须赋初始值,否则编译报错
                //抽象方法        //不能包含方法体
                注:在jdk1.8之后可以含有一个static具体方法,以及多个default修饰的具体方法
                }
    接口为更抽象的一种类型、不能包含具体实现的方法,如:构造方法、代码块、具体方法
    接口中只能包含静态常量、抽象方法
    实现接口使用 implement 关键词实现接口可以多实现,使用,分隔   例:public class a implement b,c
    接口直接可以实现多继承!一个接口可以继承多个接口 例如:public interface a extends b,c
    实现接口必须重写方法中的所有方法,否则该类也应该为抽象类

    
        





猜你喜欢

转载自www.cnblogs.com/StuAr/p/a3ce24f9f11ac9c1ed5943fa804d0bc3.html