码迷,mamicode.com
首页 > 编程语言 > 详细

java面向对象的基本形式,封装、继承、多态

时间:2019-08-02 15:01:04      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:sys   共存   不能被继承   文件   意思   面向   写代码   重载   类关系   

总结:1.面向对象三个特征:封装;继承;多态; 方法也是一个最基本的封装体,类也是封装体
2.封装:隐藏了实现的细节,还要对外提供可以访问的方式,便于调用者使用; 优点:1、提高代码的复用性;2、提高了安全;3、隐藏了实现的细节,还要对外提供可以访问的方式,便于调 用者使用
3.可以在成员变量名前面加上this.来区别成员变量和局部变量
4.继承:在一个现有的类的基础上去构建一个新的类,构建出的新的类被称作子类,现有的类被称为父类,子类会自动拥有父类的属性和方法;
5.private修饰的方法和属性不能被继承;
6.class 子类 extends 父类(){}
7.继承的好处:1、继承的出现提高了代码的复用性,提高了软件的使用效率;2、继承的出现让类与类直接产生了关系,提高了多态的前提;
8.java中只支持单继承;也就是一个子类只能继承一个父类的方法和属性;单一个父类可以拥有多个子类;
9.多层继承:一个子类同时也可以是别人的父类;
10.方法的重写(方法的覆盖):前提是子父类关系;子类和父类拥有同样的名字但是方法和内容不一样;调用时子类的方法覆盖父类的方法;
11.方法的重载:前提是在同一个类中,方法名一样但是参数列表中参数的类型,个数,顺序不一样;
12.子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
13.继承是多态的前提,一个子类可以继承父类和父父类(爷爷类)的属性和方法;
14.Object 是所有类的祖类;如Demo01的祖类是Object;单Object没有父类,它最大
15.即使子类什么都没有也至少有父类的属性和方法;
16. int i =2 ;public void show(){ int i=3;System.ou.println(i)答案是3;System.ou.println(this.i)答案是2;System.ou.println(super.i)答案是1}
super是父类的意思;super.调的属性和方法是父类的属性和方法;super.i调的是父类的i;
17.public void eat(){super.ear();System.ou.println("儿子吃肉")结果是;爸爸吃饭,儿子吃肉}打印结果:爸爸吃饭(super.eat();); 儿子吃肉(System.out.println("儿子吃 肉"););用super.eat()调用父类方法后子类的方法既有自己的内容也有父类的内容;这样子类的方法就更强大了;
18.子类和父类出现同名成员变量时,如果子类有,调子类;如果子类没有,调父类的;
19.main方法如果用super.调的是Object的属性和方法;因为demo01的父类是Object
20.子类方法要覆盖父类的方法,必须保证权限大于父类的权限;如父类是public;子类就不能说private;
21.设计关系图:由下往上写;抽取共性;写代码:由上往下写,先写父类
22.抽象类要用abstract修饰;拥有了抽象方法的类就是抽象类除非将继承的抽象方法重写;写成普通方法就能实例化(new)就能在main方法里面调取属性和方法了
23.抽象方法只有方法名没有方法体要被abstract休息
23.抽象类:public abstract class 类名{};抽象方法:public abstract 返回值类型 方法名();
24.抽象的方法要被abstract修饰,抽象的方法一定要定义在抽象类中;抽象的类不可以直接创建对象,因为被抽象后;方法只能是抽象方法,抽象的方法没有方法体只有方法名,
调用方法没有实际意义,所以抽象的类只有被继承后并并被实例化(将继承的父类方法都要重写,写成普通方法才行),才能进行赋值和调用方法
只有覆盖了继承来的父类的所有的抽象方法后才能被实例化,因为只要有抽象的方法存在哪它就是个抽象类
抽象类是一个父类,抽象类 可以不定义抽象方法;
25、abstract不能和那些关键字共存:1.private 因为被private修饰的方法和类是不能被继承的,不能被继承那么抽象方法和抽象类就没有意义了,也不能被实例化不能被调用
final和static也不行
26、抽象类包含:普通方法和抽象方法;
27、抽象类的基础是继承,没有继承那么抽象类和抽象方法就没有意义了,所以abstract和private不能共存
28、只要在子类里面都可以super.;抽象方法除了不能被实例化也就是new和普通类没什么区别
29、抽象方法:public abstract void work()变成 普通方法:public void work();JavaEE就能变成普通类了;
30.接口:接口是功能的集合,接口只描述所应具备的方法不具备实现的功能
31.接口要被interface修饰,其编译后的文件仍然是.class;所以我们把接口看做是一个只具备功能的特殊类是一个特殊的抽象类
32.接口类的定义:public interface 接口名;用interface代替了原来的class;
33.实现接口的子类要用imperments修饰:public class 类名 imperments 接口名{};
34.接口可以定义变量,单变量要用public static final修饰;定义方法 要用public abstract 返回值(void) 方法名(){}修饰
接口不能创建对象,子类必须覆盖了父类里的抽象方法后才能建立对new对象;不然只能
35.public class Student extends Person implements Smoking,Drink{}实现类可以连接多个接口后面用,隔开直接写就行;可以继承一个父类(extends Person)然后再实现接口的功 能(implements Smoking,Drink),先继承再实现
接口支持多继承;interface Zi extends Fu1,Fu2,Fu3;一个接口的定义可以继承多个接口
类和类之间只能单继承;类和接口之间是实现关系,类实现接口的功能
实现类实现接口用implements语句;定义接口类用interface;因为接口类是抽象类;所以实现类得重写接口中的抽象方法才行;接口和实现类实际上就是抽象类和继承的子类一样

java面向对象的基本形式,封装、继承、多态

标签:sys   共存   不能被继承   文件   意思   面向   写代码   重载   类关系   

原文地址:https://www.cnblogs.com/hankai2735/p/11288247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!