05Java面向对象的编程OOP |
您所在的位置:网站首页 › java接口回调的概念和作用 › 05Java面向对象的编程OOP |
(备案于2023年1月6日,作用:05抽象与接口,备案号:2301060505) 42.抽象(abstract) 定义:可以将共性行为(方法)抽取到父类,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。 43.抽象的特点 43.1抽象(abstract)不能修饰变量; 43.2抽象方法:抽象方法没有方法体。 43.3抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。 43.4抽象类中可以有属性,方法,构造方法,可以没有抽象方法,但是有抽象方法的类一定是抽象类。 43.5如果抽象类中有抽象方法,那么抽象类的子类,要么重写父类中所有的抽象方法,要么是抽象类(不推荐)。 案例: package eNew; //父类 //43.3抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。 abstract class Father{ //43.4抽象类中可以有属性,方法,构造方法,可以没有抽象方法,但是有抽象方法的类一定是抽象类。 private String name; public Father() { } public Father(String name) { this.name = name; } //43.2抽象方法:抽象方法没有方法体。 public abstract void skill(); } //子类1 //43.5如果抽象类中有抽象方法,那么抽象类的子类,要么重写父类中所有的抽象方法,要么是抽象类(不推荐)。 class Son1 extends Father{ @Override public void skill() { System.out.println("砍树"); } } //子类2 class Son2 extends Father{ @Override public void skill() { System.out.println("除草"); } } public class Demo01 { public static void main(String[] args) { Son1 s1 = new Son1(); Son2 s2 = new Son2(); s1.skill(); s2.skill(); } } 44.final,static和abstract的区别 45.接口(implement) 定义:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 对比。 46.接口(implement)的特点 46.1接口是完全抽象的(无法实例化)。(抽象类是半抽象。)或者也可以说接口是特殊的抽象类。 46.2接口支持多继承,一个接口可以继承多个接口。 46.3接口中只包含两部分内容: 一部分是:常量。 一部分是:抽象方法。 46.4接口中所有的元素都是public修饰的。(都是公开的) 46.5接口中的常量的public static final可以省略,且变量必须赋值。 46.6接口中的抽象方法定义时:public abstract修饰符可以省略;,所以接口中的方法不能有方法体。 46.7当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(覆盖、重写)(和继承抽象类一样)。 46.8一个类可以既实现接口,有继承父类;类和类之间叫做继承(extends),类和接口之间叫做实现(implements);其中,extends关键字在前,implements 关键字在后 案例: package eNew; //接口1 //46.1接口是完全抽象的(无法实例化)。(抽象类是半抽象。)或者也可以说接口是特殊的抽象类。 //46.3接口中只包含两部分内容:一部分是:常量。一部分是:抽象方法。 interface Socket1{ //46.5接口中的常量的public static final可以省略,且变量必须赋值。 String name = "李"; public static final String sex = "男"; //private int age = 10;报错 //46.6接口中的抽象方法定义时:public abstract修饰符可以省略;,所以接口中的方法不能有方法体。 void action(); public abstract void like(); //public void info(){}报错 } interface Socket2{ void skill(); } class FatherNew{} //46.2接口支持多继承,一个接口可以继承多个接口。 //46.7当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(覆盖、重写)(和继承抽象类一样)。 //46.8一个类可以既实现接口,有继承父类;类和类之间叫做继承(extends),类和接口之间叫做实现(implements);其中,extends关键字在前,implements 关键字在后 class SonNew extends FatherNew implements Socket1,Socket2{ @Override public void action() { } @Override public void like() { } @Override public void skill() { } } 47.接口比抽象类更好的特性 47.1.可以多继承 47.2.设计和实现完全分离 47.3.更自然的使用多态 47.4.更容易搭建程序框架 47.5.更容易更换实现 48.抽象类与接口的异同(相同点和不同点)? 相同点: 1.抽象类和接口都不能实例化对象,但是可以定义抽象类和接口类型的引用; 2.继承抽象类和实现接口都要对其中的抽象方法全部实现; 不同点: 1.接口比抽象类更加抽象,抽象类中可以定义构造方法(构造器),可以有抽象方法和具体方法,而接口中的方法全部都是抽象方法(接口中也可以没有方法,这样的接口称为空接口) 2.抽象类中的方法可以是private,protected,public,接口全部都是public 3.抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量(final) 4.有抽象方法的类必须声明为抽象类,而抽象方法未必要有抽象方法 49.OOP设计原则:类与类之间的关系 49.1继承关系,extends 49.2关联关系,一对多,多对多 49.3实现关系 49.4依赖关系 49.5聚合关系 49.6组合关系 https://blog.csdn.net/weixin_43149049/article/details/107488251?ops_request_misc=&request_id=&biz_id=102&utm_term=类与类之间的关系&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-107488251.nonecase&spm=1018.2226.3001.4187 作业: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |