java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点
一.抽象类和抽象方法 (B 继承 抽象类A)
抽象类:有抽象方法的一定是抽象类
抽象方法:方法名前有abstract修饰,且方法没有方法体,即{},不需要实现任何功能,只是声明
1.抽象类中的方法有两种:
(1)抽象类中的普通方法,可以不必实现
(2)抽象方法,所属的抽象类被继承后,抽象方法必须被重写,除非是被抽象类继承,不必被
抽象类必须被继承,且抽象类不能被实例化,即抽象类A ,不能定义 A a=new A() ;
package Interface; /**
* Created by wyy on 2017/2/25.
*/
public class abstractTest { public static void main(String[] args) {
Person s = new Students(); //引用Students的对象
Person t = new Teacher();//引用Teacher的对象
s.f();
t.f(); //我是一个学生 我是一个老师
}
}
abstract class Person {
public abstract void f(); //声明一个抽象类
} class Students extends Person { //类Students继承抽象类
public void f() {
System.out.println("我是一个学生");
}
} class Teacher extends Person { //类Teacher继承抽象类
public void f() {
System.out.println("我是一个老师");
}
}
二. 接口(B implements interface A)
实现接口的类,必须要实现接口内定义的所有方法.
先定义一个接口类Like
package Interface; /**
* Created by wyy on 2017/2/22.
*/ public interface Like{
public void a();
public void b(); }
接口类 Hate
package Interface; /**
* Created by wyy on 2017/2/22.
*/
public interface Hate {
public void c();
public void d(); }
实现这两个接口,必须实现接口内的所有方法:
public class A implements Like,Hate {
@Override
public void a(){
System.out.println("this is a");
}
@Override
public void b() {
System.out.println("this is b");
}
@Override
public void c() {
System.out.println("this is c");
}
@Override
public void d() {
System.out.println("this is d");
}
}
三. 构造方法和类方法
- 方法名与类名相同;
- 不要返回类型(例如return、void等);
- 不能被static、final、native、abstract和synchronized修饰,不能被子类继承。
- 继承
- 重写(子类继承父类,但是有自己不同的方法处理)
- 父类引用指向子类对象
java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点的更多相关文章
- Java基础知识(抽象类和接口)
一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abst ...
- JAVA核心技术I---JAVA基础知识(抽象类和接口)
一:抽象类 (一)定义 类:属性(0或多个)+方法(0或多个)一个完整(健康)的类:所有的方法都有实现(方法体)类可以没有方法,但是有方法就肯定要有实现,这才是一个完整的类一个完整的类才可以被实例化, ...
- java基础知识总结--继承和接口
什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行 ...
- 十、Java基础---------面向对象之抽象类与接口
抽象类(abstract) 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...
- Java基础系列--06_抽象类与接口概述
抽象类 (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明. 如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰. 而一个类中如果有抽象方法,这个类必须定义为 ...
- 【java基础 16】抽象类和接口的区别
导读:前两天闲着没事儿,看了本书,然后写了点代码,在接口里面写了默认方法实现,因为书上说这个特性是从java8开始的,我还特地给测了一下java7. 没过几天,就有一个技术分享会,刚好也是讲java8 ...
- Java基础5:抽象类和接口
本文主要介绍了抽象类和接口的特性和使用方法. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.g ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java 基础知识(一)
Java基础知识篇: 一.关键字解释 1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”.出于对设计或者效率的考虑使用该关键字. final类无法被继承,fina ...
随机推荐
- node.js之模块
node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...
- JavaScript 加号运算符详解
将介绍JavaScript中 '+'加号运算符在一元.二元运算时的表现. 目录 1.一元运算符 2. 二元运算符 1. 一元运算符 语法: + Expression 说明:'+'号运算符作为一元运算符 ...
- java protected修饰符理解
Protected类型可以在本包和子类中访问的含义.在本包中访问,顾名思义,可以在定义类的包中的任何地方申请一个包含protected修饰符的域和方法的类的对象,并通过这个对象访问被protected ...
- WebClient 调用api
使用: /// <summary> /// 获取用户信息 /// </summary> /// <param name="code"></ ...
- 创建springbootdemo后运行报MongoSocketOpenException错误解决方法
在类SpringbootdemoApplication上右键Run as选择Spring Boot App后Console输出报错日志如下: com.mongodb.MongoSocketOpenEx ...
- c#实现服务端webSocket
现阶段socket通信使用TCP.UDP协议,其中TCP协议相对来说比较安全稳定!本文也是来讲解TCP为主(恕在下学艺不精). 下面是个人理解的tcp/ip进行通讯之间的三次握手! 1.客户端先发送报 ...
- 一次由SELinux引起的ssh公钥认证失败问题
一直使用CentOS作为服务器系统,平时装完系统以后都是建立publickey认证机制,然后关闭密码认证.原本是一件轻车熟路毫无压力的事情,不想前日新装一台机器按照正常配置以后居然使用publicke ...
- oracle导库
cmd窗口直接输入导库命令即可,不需要进入sqlplus C:\Documents and Settings\Administrator> imp username/pass@orcl file ...
- Python验证码通过pytesser识别
Python安装包: 需要安装的包主要有两个: PIL 和 pytesser .tesseract (1).安装PIL:下载地址:http://www.pythonware.com/products/ ...
- Flask01 路由控制(转换器)、反转、请求方法控制
1 提出问题 如何实现前端传过去的路径时动态的(即:多个url对应一个url视图函数) 例如: 浏览器中输入 http://127.0.0.1:5000/test/good/ 或者 http://12 ...