当前位置: 首页 > wzjs >正文

克拉玛依市建设局网站wordpress 微博模板

克拉玛依市建设局网站,wordpress 微博模板,首码圈项目网,wordpress crm分销插件1. 引言 面向对象编程的核心概念 面向对象编程是模拟人的思维方式来组织代码,便于处理复杂的业务。 面向对象四大核心特征: 封装:将数据和操作数据的方法组合在一起,隐藏内部实现的具体细节,只需要暴露必要的接口。 …

1. 引言

  • 面向对象编程的核心概念
    面向对象编程是模拟人的思维方式来组织代码,便于处理复杂的业务。

面向对象四大核心特征:
封装:将数据和操作数据的方法组合在一起,隐藏内部实现的具体细节,只需要暴露必要的接口。

继承:
一个类获得另一个类的属性和方法,实现代码的复用和拓展,子类继承父类。

多态:
一个接口可以有多种不同的实现方式,运行时候根据具体对象决定调用哪个方法。比如“动物叫这个行为”,可以实现狗汪汪叫,猫喵喵叫,实现方式不同,但是都属于这个行为

抽象:
提取食物的共同特征,忽略实现的具体细节,只关注本质属性。比如定义“车”,特征是轮子,可以行驶等特征,而不是关注具体品牌型号。

2. 继承(Inheritance)基础

2.1 什么是继承

  • 继承的定义和概念
    允许一个类(子类)获得另一个类(父类)的属性和方法。子类可以重用父类的代码,添加自己特有的功能或者修改从父类继承来的行为。

提现的是“is a ”的关系,比如Cat is anlimal子类是父类的一种特殊类型。

  • Java中继承的语法结构
  • class 子类名 extends 父类名 { // 子类的额外属性 // 子类的额外方法 // 重写父类的方法 }

2.2 继承的基本语法

  • extends 关键字的使用
//父类定义
class Animal{protected String name;protected int age;public void eat(){System.out.println(this.name+"正在吃饭");}public void sleep(){System.out.println(this.name+"正在睡觉");}
}
//子类继承父类
class Cat extends Animal{private String breed;//子类特有的属性//子类特有的方法public void bark(){System.out.println(this.name+"正在狂叫");}
} 

特点:

  • 子类不能继承父类的private(属性和方法)
  • 子类可以添加自己特有的成员
  • 子类可以重写父类的方法来改变其行为
  • 一个父类可以有多个子类
  • 一个子类只能有一个直接父类(单继承)

2.3 继承的特性

  • 单继承特性(Java不支持多重继承)
  • 传递性(A继承B,B继承C,则A也继承C的特性)
  • 子类可以扩展父类功能
class Animal{protected String name;protected int age;//构造方法public Animal(String name,int age){this.name = name;this.age = age;}public void eat(){System.out.println(this.name+"正在吃饭");}public void sleep(){System.out.println(this.name+"正在睡觉");}public void showInfo(){System.out.println("名字:"+name+",年龄"+age);}//狗继承动物类class Dog extends Animal{private String berrd;public Dog(String name, int age){super(name,age);//调用父类构造方法this.breed = breed ;}//狗独有的行为public void bark(){System.out.println(this.name+"狗在叫");	}//重写父类方法@Overridepublic void showInfo(){super.showInfo();//调用父类构造方法System.out.println("Breed: " + breed);} }//使用示例public class Test{public static void main(String[] args){Dog dog = new Dog("小黑",2,"Black");//调用继承方法dog.eat();dog.sleep();//调用子类方法dog.bakr();dog.sleep();//调用重写的方法dog.showInfo();}}
}

2.4 方法重写(Override)

  • @Override注解的作用
    编译时检查、提高代码可读性、防止错误(方法签名不匹配的时候,编译器会报错)

  • 重写的规则和限制
    方法名、参数列表必须完全相同
    返回类型可以是父类返回类型的子类
    访问修饰符可以相同或者不同
    static、final、private不能重写
    访问权限不能更严格

// 父类
protected void method() { }// 子类 - 正确
public void method() { }     // 更宽松
protected void method() { }  //  相同// 子类 - 错误
private void method() { }    //  更严格
  • 重写与重载的区别
    在这里插入图片描述
//重写
class Animal{public void run(){}
}
class Dog extends Animal{@Overridepublic void run(){}
}
//重载
class Example{public void run(){};public void run(int x){};//参数类型不同
}

2.5 super关键字

  • super的作用和使用场景
  • 调用父类构造方法
  • 调用父类的方法和属性
  • 代码示例演示

2.6 构造方法与继承

  • 子类构造方法的执行顺序
  • 显式调用父类构造方法
  • 默认构造方法的继承规则

3. 多态(Polymorphism)详解

3.1 多态的概念

  • 多态的定义
    同一个接口可以有多种不同的实现方式

  • "一个接口,多种实现"的理解

// 统一的接口
Shape shape;// 多种不同的实现
shape = new Circle();      // 圆形的实现
shape = new Rectangle();   // 矩形的实现  
shape = new Triangle();    // 三角形的实现// 同一个方法调用,不同的执行结果
shape.draw();  // 运行时决定具体绘制什么图形

3.2 多态的实现方式

//方式1:

  • 继承 + 方法重写
abstract class Animal{public abstract void bark();
}
class Dog extends Animal {@Overridepublic void bark(){System.out.println("旺旺");}
}
class Cat extends Animal{@Overridepublic void bark(){Systen.out.println("喵喵");}
}
//方式2:
接口实现```java
interface Drawshape{void draw();
}
class Circle implements Drawshape{public void draw(){System.out.println("画圆"); }
}
class Rect implements Drawshape{public void draw(){System.out.println("画方"); }
}
//方式3:
抽象类实现```java
abstract class Vehicle {public abstract void start();public void stop() { System.out.println("停止"); }  // 具体方法
}class Car extends Vehicle {public void start() { System.out.println("汽车启动"); }
}

3.3 多态的语法表现

  • 父类引用指向子类对象
// 语法形式:父类型 引用名 = new 子类型();
Animal animal = new Dog();        // 向上转型
Shape shape = new Circle();       //  向上转型
Drawable drawable = new Square(); //  接口引用指向实现类
  • 动态绑定(晚期绑定)
Animal animal = new Dog();
animal.makeSound();  // 编译时:不知道具体调用哪个方法// 运行时:动态决定调用Dog的makeSound()
  • 方法调用的运行时决定
public void testPolymorphism(Animal animal) {animal.makeSound();  // 运行时根据实际对象类型决定调用
}testPolymorphism(new Dog());  // 输出:汪汪
testPolymorphism(new Cat());  // 输出:喵喵

3.4 多态的优势

//一个方法可以处理多种类型
public void drawShape(Shape shape){shape.draw();shape.calculateArea();
}
//可以处理所有shape的子类
processShape(new Circle());
processShape(new Rectangle());
processShape(new Triangle());

3.5 向上转型与向下转型

  • 向上转型(自动类型转换)
// 语法:父类型 引用 = 子类对象;
Animal animal = new Dog("旺财", 2);  // 自动向上转型
  • 向下转型(强制类型转换)
Animal animal = new Dog("旺财", 3, "金毛");
Dog dog = (Dog) animal;  // 强制向下转型
  • instanceof关键字的使用
Animal animal = new Dog("旺财", 3, "金毛");if (animal instanceof Dog) {Dog dog = (Dog) animal;  // 安全的向下转型dog.bark();              // 调用Dog特有方法
}

4.1 抽象类与继承

  • 抽象类的定义和使用
abstract class Vehicle {protected String brand;  // 具体属性public Vehicle(String brand) {  // 构造方法this.brand = brand;}// 抽象方法 - 子类必须实现public abstract void start();public abstract void stop();// 具体方法 - 子类可直接使用public void displayInfo() {System.out.println("品牌: " + brand);}
}
  • 抽象方法的继承要求
    规则:
    必须实现:子类必须实现所有抽象方法
    可以重写:子类可以重写具体方法
    继承属性:子类继承父类的属性和具体方法
class Car extends Vehicle {public Car(String brand) {super(brand);}@Overridepublic void start() {  // 必须实现System.out.println(brand + "汽车启动");}@Overridepublic void stop() {   // 必须实现System.out.println(brand + "汽车停止");}
}

4.2 接口与多态

  • 接口的多实现特性
// 接口定义
interface Flyable {void fly();
}interface Swimmable {void swim();
}// 类可以实现多个接口
class Duck implements Flyable, Swimmable {@Overridepublic void fly() { System.out.println("鸭子飞行"); }@Overridepublic void swim() { System.out.println("鸭子游泳"); }
}

4.3 final关键字的影响

  • final类不能被继承
  • final方法不能被重写
  • final变量的继承特性

抽象类与接口使用指南

抽象类:当需要提供部分共同实现时
接口:当需要定义行为契约或支持多重继承时

final关键字使用场景

final类:工具类、不可变类(如String)
final方法:模板方法模式中的关键步骤
final变量:常量定义、不可变对象


文章转载自:

http://cWQS8GnC.xzgbj.cn
http://ClZW50wi.xzgbj.cn
http://hwHCwAXV.xzgbj.cn
http://it7IZQim.xzgbj.cn
http://jxcYEokB.xzgbj.cn
http://tBwMDFcR.xzgbj.cn
http://2kYaDjo4.xzgbj.cn
http://ZmiTg3Ve.xzgbj.cn
http://DdFRZ2BJ.xzgbj.cn
http://uroqirQ8.xzgbj.cn
http://OwSgfdVg.xzgbj.cn
http://3gyd2BjW.xzgbj.cn
http://Jb3YzuIQ.xzgbj.cn
http://l192QOtM.xzgbj.cn
http://nofYU4YI.xzgbj.cn
http://9B25I1B4.xzgbj.cn
http://YlgHGtqr.xzgbj.cn
http://UrYZ8yUv.xzgbj.cn
http://snWV2deQ.xzgbj.cn
http://bWiuWZgk.xzgbj.cn
http://J09cl351.xzgbj.cn
http://v5MX76RS.xzgbj.cn
http://NeIgTVIh.xzgbj.cn
http://WLuI0kAM.xzgbj.cn
http://4wj1429a.xzgbj.cn
http://h1vxNEcn.xzgbj.cn
http://zSTiJWTe.xzgbj.cn
http://t6R7CDB0.xzgbj.cn
http://4TaHtYOL.xzgbj.cn
http://Ia2DAwjv.xzgbj.cn
http://www.dtcms.com/wzjs/712615.html

相关文章:

  • 网站做推广怎么收费建设游戏网站需要哪些设备
  • 建设工作室网站网站建设开题报告书
  • 网站标题关键词描述深圳创业补贴咨询电话
  • 怎么看一个网站是否是外包做的destoon做的网站
  • 网站如何添加图标我想建设一个算命网站
  • 上海空灵网站设计北京装修公司哪家口碑最好 知乎
  • 不用下载就能看的网站的浏览器高性能网站建设书籍
  • 网站开发定义名称网站占有率
  • 国际英文网站广州网站搭建快速提升网站排名
  • 济南做网站公司wordpress 会员中心插件
  • 荣成市城乡建设局网站创建网页用什么软件
  • 定制版网站建设详细报价单网站建设 解决方案
  • 虚拟主机做网站wordpress3.7.1下载
  • 大良网站建设如何网站备案初审时间
  • 拍卖网站功能需求文档wordpress 文字插件下载
  • 免费素材网站素材库简单的网页设计论文
  • 我需要把网站做山东城市建设职业学院教务网站
  • 做网站虚拟主机和云服务器吗北京网站后台培训
  • 单页网站 营销wordpress登入地址
  • 赌场网站建站网站建设方案开发
  • 开发区网站建设工作管理办法网页设计与制作教程目录
  • 有人找做网站的led灯网站策划书
  • sns社交网站开发教程在线制作头像模板
  • 微网站是免费的吗wordpress文章自动标签
  • 西安知名的网站建设公司wordpress 主题 36kr
  • 深圳最专业的高端网站建设阿里云虚拟主机wordpress建站教程
  • 网站图文列表公司网络架构
  • 自适应模板网站网站有哪些分类
  • 那个公司做网站好互联网金融型网站开发
  • 兴安盟新百度县seo快速排名快速排名优化怎么样