编程语言Java中的三大特性:封装、继承、多态

编程语言Java中的三大特性:封装、继承、多态封装:概念:封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问,适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。原则:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。主要运用就是JavaBean代码:创建JavaBean1 //创建一个Person类 2 public class Person  { 3     private String name;  //private私有方法修饰变量,把变量封装起来 4     private int age; 5 //无参构造方法 6     public Person() { 7     } 8 //有参构造方法 9     public Person(String name, int age) {10         this.name = name;11         this.age = age;12     }13 //set、get方法14     public String getName() {15         return name;16     }17 18     public void setName(String name) {19         this.name = name;20     }21 22     public int getAge() {23         return age;24     }25 26     public void setAge(int age) {27         this.age = age;28     }29 //重写toString方法:便于输出格式好看点30     @Override31     public String toString() {32         return "Person{" +33                 "name='" + name + '\'' +34                 ", age=" + age +35                 '}';36     }37 }赋值就通过构造方法就可以了访问控制修饰符范围:修饰符/类本类同一个包中的类子类其他类public可以可以可以可以protect可以可以可以不可以无访问修饰符可以可以不可以不可以private可以不可以不可以不可以继承:概念:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。好处:提高代码的复用性。类与类之间产生了关系,是多态的前提。代码:1 //定义父类 2 public class Fu { 3     int age =1; 4     public void show(){ 5         System.out.println("父类的方法"); 6     } 7     public Fu() { 8         System.out.println("父类无参构造"); 9     }10     public Fu(String name){11         System.out.println(name);//父类有参构造要在子类构造方法中通过super关键字赋值12     }13 }14 15 //定义子类继承父类16 public class Zi extends Fu {17     int age =2;//定义和父类相同的成员变量18     public Zi() {19     super("给父类有参构造赋值成功");//通过super关键字给父类有参构造赋值20     }21     public  void show(){//成员方法重名:重写22       //  super.show();//super关键字调用父类同名方法23        System.out.println("子类的方法");24     }25     public void show1(){26         System.out.println(this.age);//this关键字调用本类的成员方法27         System.out.println(super.age);//super关键字调用父类的成员方法28     }29 }30 31 //测试类32 //父类构造方法有参数必须要子类的构造方法通过super关键字赋值,不然要报错33 public class ExtendsTest {34     public static void main(String[] args) {35       Zi zi = new Zi();36        zi.show();37        zi.show1();38     }39 }输出结果:

多态:概念:多态是指同一行为,具有多个不同表现形式。前提:1. 继承或者实现【二选一】2. 方法的重写【意义体现:不重写,无意义】3. 父类引用指向子类对象【格式体现】当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法。代码:1 //父类 2 public abstract class Animal { 3     public abstract void eat(); 4 } 5  6 //子类Dog继承 7 public class Dog extends Animal { 8     @Override 9     public void eat() {//重写父类的方法10         System.out.println("狗吃东西");11     }12 }13 14 //子类Cat继承15 public class Cat extends Animal {16     @Override17     public void eat() {//子类重写18         System.out.println("猫吃东西");19     }20     public void run(){//子类自己定义的方法21         System.out.println("猫跑开了");22     }23 }24 25 26 //测试类27 public class Test {28     public static void main(String[] args) {29         Cat cat = new Cat();30         Dog dog = new Dog();31 //        多态规定,执行的是子类重写的方法,无论之后再多的子类出现,我们都不需要编写showXxxEat方法了,直接使用 showAnimalEat都可以完成。32         showAnimaleat(cat);33         showAnimaleat(dog);34 35 /*//        向上转型36         Animal c =new Cat();37 //        向下转型38         Cat cat = (Cat) c;39         cat.run();*/40 //      instanceof关键字运用41         Animal an =new Cat();42         if (an instanceof Cat){43             Cat cat1 = (Cat) an;44             cat1.eat();45         }else {46             Dog dog1 = (Dog) an;47             dog1.eat();48         }49     }50     public static void showCateat(Cat cat){51         cat.eat();52         cat.run();53     }54     public static void showDogeat(Dog dog){55         dog.eat();56     }57     public static void showAnimaleat(Animal animal){58         animal.eat();59     }60 }面向对象编程的这三大特性,自己肯定总结的不够全面,主要能给我一点印象,如果有错的地方欢迎大家来纠错www.sobd.ccwww.jcdi.cnwww.somanba.cn

(0)

相关推荐

  • Java动态代理设计模式

    本文主要介绍Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理. 什么是代理模式 就是为其他对象提供一种代理以控制对这个对象的访问.代理可以在不改动目标对象的基础上,增加其他额外 ...

  • Java向上转型与向下转型知识点整理

    本篇博客的由来是自己对于java多态里的向上转型与向下转型概念及用法不明了,所以查询资料整理如下所示,参照了许多大神的写法,终有所掌握. 概念 Java中的继承机制使得一个类可以继承另一个类,继承的类 ...

  • 一篇文章让你掌握多态

    一篇文章让你掌握多态

  • 封装+继承+多态

    面向对象三大特性 封装: Encapsulation是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法.封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随意访问.要访问该类 ...

  • Java 中的语法糖,为你揭开这些特性背后的真相。

    我们在日常开发中经常会使用到诸如泛型.自动拆箱和装箱.内部类.增强 for 循环.try-with-resources 语法.lambda 表达式等,我们只觉得用的很爽,因为这些特性能够帮助我们减轻开 ...

  • Java 中的关键字

    Java 中有多少个关键字,有大小写之分吗? Java 中有 48 个关键字在使用 + 两个保留关键字未使用,共 50 个关键字. Java 关键字全部都由是小写组成. Java 中保留关键字分别是哪 ...

  • Java中的匿名内部类

    一.匿名内部类 之前的所有类都有自己的名字,但是有时候如果某个接口的实现类(或者某个父类的子类)只需要使用一次,此时这样的类如果我们单独定义出来则需要单独为其创建一个"*.java" ...

  • 虚假诉讼在财产继承中很常见。子女继承父母...

    虚假诉讼在财产继承中很常见. 子女继承父母的财产,如果没有遗嘱,需要其他继承人的同意,就可以办理过户登记. 但是不动产登记中心,非要公证遗嘱或者法院判决,遗嘱没有,只能想办法拿到法院的判决. 到法院起 ...

  • Java中的方法内部类

    一:方法内部类 就是在方法中直接定义一个内部类,之后直接使用这个内部类对象的方法,你作为语法 了解就行了. DEMO:方法中定义内部类     以上是在方法中定义了一个内部类,方法中的内部类能访问方法 ...

  • Java | 在 Java 中执行动态表达式语句: 前中后缀、Ognl、SpEL、Groovy、Jexl3

    在一些规则集或者工作流项目中,经常会遇到动态解析表达式并执行得出结果的功能. 规则引擎是一种嵌入在应用程序中的组件,它可以将业务规则从业务代码中剥离出来,使用预先定义好的语义规范来实现这些剥离出来的业 ...

  • 门头沟法院调研发现因使用他人信用卡而引发的民间借贷案件中存在三大审理难点

    门头沟法院民二庭调研发现,在因使用他人信用卡引发的民间借贷纠纷案件的审理过程中,存在以下难点: 一.是否构成民间借贷问题.大多数使用他人信用卡消费引发的民间借贷案件中,没有借条或欠条等证明双方存在借贷 ...

  • 学术写作三大特性介绍

    现在中国学生出国留学最大的障碍之一是学术写作?!没错,无论是入学考试.语言考试(比如托福)还是英美等国家KS3阶段学科作业.课堂检测等等都会要求学生进行学术性写作. 在国内,我们的孩子也是从初中开始接 ...